[英]PyQt run time issue
我希望通過顯示qtwidget然后運行forloop來運行我的代碼,但它會運行forloop然后向我顯示我的小部件。 為什么是這樣?
class tes(QWidget):
def __init__(self):
super(tes, self).__init__()
self.initUI()
for i in range (1000000):
print("s")
def initUI(self):
t = QTableWidget(8,8,self)
self.show()
self.resize(1000,1000)
t.setGeometry(0,0,500,500)
t.show()
def main():
app = QApplication(sys.argv)
t = tes()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
在循環之前添加QApplication.processEvents()
。 您的小部件將顯示,但沒有響應。 為了使應用程序具有響應能力,請將processEvents()
調用添加到循環的某些步驟。
例:
def __init__(self):
super(tes, self).__init__()
self.initUI()
QApplication.processEvents()
for i in range (1000000):
if not i % 3: # let application process events each 3 steps.
QApplication.processEvents()
print("s")
這是因為在tes
對象初始化期間執行了for循環之后運行了app.exec_()
。
該窗口小部件僅在應用程序運行時顯示,而在初始化時不顯示。 您到底想在循環中做什么? 將其連接到信號或在事件中處理它可能會更好,但這完全取決於您要實現的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.