0

私が達成しようとしているのは、ユーザーがプッシュボタンを押したときに、最初は非表示のQLabelを表示したいということです。ただし、そのプッシュボタンで、ドライブスキャンに約2〜3分かかるヘビーデューティスキャンを割り当てました。QLabelはスキャンが終了した後にのみ表示されます。すべてが完了した後ではなく、ボタンがクリックされたときに表示されるようにするにはどうすればよいですか。

コード

self.label_3.hide()
...
self.pushButton.clicked.connect(self._btn_cb)
...    
def _btn_cb(self):
    self.label_3.show() # here is the show code
    for filename in find_files("C://images//", '*.png'): # took roughly 2-3 minutes
        print filename

私はPythonを初めて使用します、私を助けてくれてありがとう

4

1 に答える 1

1

に呼び出しを追加する必要があります

QApplication.instance().processEvents()

.show()ラベルを呼び出した直後。これにより、Qtは、コードの残りの部分に移動する前に、キュー内のイベント(ラベルを表示)を処理するように強制されます。

コードの先頭QApplicationからインポートするようにしてください。QtGui

from PyQt4.QtGui import QApplication
于 2012-05-15T15:21:19.607 に答える