PyQt Windows没有出现

时间:2019-02-21 17:01:16

标签: python pyqt5

My Code

有人可以告诉我为什么启动程序后我的PyQt Windows不出现吗? (来自PyQt Designer的转换器)

当我尝试使用ui.show()而不是Dialog.show()时,它说:类'Ui_Dialog'的未解析属性引用'show'

1 个答案:

答案 0 :(得分:0)

  

当我尝试使用ui.show()而不是Dialog.show()时,它说:类'Ui_Dialog'的未解析属性引用'show'

ui变量仅保存UI数据,它不是Qt对象。

import sys
app = QtWidgets.QApplication(sys.argv)
dialog = QtWidgets.QDialog() # Lowercase for objects, dialog
ui = Ui_Dialog
ui.setupUI(Dialog)

# At this point dialog is your actual dialog object
# and ui is still just UI data.
dialog.show()  # Show your dialog.

调用.show()是非阻塞的,它只是一条指令。但是,要使Qt执行该指令,您需要启动Qt事件循环(这是将窗口放在屏幕上并接受用户输入的处理方式)。

# Call app.exec_() to start the Qt event loop.
app.exec_()

请注意,对话框也有其 own .exec_(),可用于发出阻止对话框(阻止与父应用程序进行交互)。如果您致电dialog.exec_(),您仍然应该会看到对话框。但是,您的应用程序将无法执行其他任何操作,因为一旦关闭对话框,事件循环就会结束。