<p>在您的例子中,我看到您创建了不必要的函数,我删除了一些。根据你告诉我的,信号不需要携带信息,所以我将创建一个没有参数的信号。连接到按钮的插槽必须使<code>QProgressBar</code>可见并启动线程,并且完成的信号作业必须与隐藏<code>QProgressBar</code>的方法连接,在下面的示例中使用<code>QThread::sleep()</code>来模拟某些处理。在</p>
<pre><code>class ProgressThread(QtCore.QThread):
job_done = QtCore.pyqtSignal()
def __init__(self, parent=None):
super(ProgressThread, self).__init__(parent)
def do_work(self):
QtCore.QThread.sleep(2) # emulate processing
self.job_done.emit()
def run(self):
self.do_work()
class mainProgram(QtWidgets.QMainWindow, Ui_MainWindow): # main window
def __init__(self, parent=None):
super(mainProgram, self).__init__(parent)
self.setupUi(self)
self.progress_thread = ProgressThread()
self.progress_thread.job_done.connect(self.on_job_done)
self.create_ui()
self.B_aerodrome_data.clicked.connect(self.aerodrome_data)
def aerodrome_data(self):
self.start_thread()
def start_thread(self):
self.progress.setVisible(True)
self.progress_thread.start()
def on_job_done(self):
print("Generated string : ")
self.progress.setVisible(False)
def create_ui(self):
[...]
</code></pre>