有人可以告诉我为什么启动程序后我的PyQt Windows不出现吗? (来自PyQt Designer的转换器)
当我尝试使用ui.show()而不是Dialog.show()时,它说:类'Ui_Dialog'的未解析属性引用'show'
答案 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_()
,您仍然应该会看到对话框。但是,您的应用程序将无法执行其他任何操作,因为一旦关闭对话框,事件循环就会结束。