【问题标题】:pyqt5 dialog not showing any widgetspyqt5 对话框未显示任何小部件
【发布时间】:2017-12-06 17:38:13
【问题描述】:

我已经使用 Qt Creator 创建了一个对话框,然后使用

将 .ui 文件转换为 .py 文件
 pyuic5 dialog.ui -o dialog.py

生成的代码如下

class Ui_dialog(object):
    def setupUi(self, dialog):
        dialog.setObjectName("dialog")
        dialog.resize(976, 725)
        self.verticalLayoutWidget = QtWidgets.QWidget(dialog)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(360, 210, 160, 80))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget)
        self.pushButton.setObjectName("pushButton")
        self.verticalLayout.addWidget(self.pushButton)

        self.retranslateUi(dialog)
        QtCore.QMetaObject.connectSlotsByName(dialog)

    def retranslateUi(self, dialog):
        _translate = QtCore.QCoreApplication.translate
        dialog.setWindowTitle(_translate("dialog", "Dialog"))
        self.pushButton.setText(_translate("dialog", "PushButton"))

现在我正在尝试从我的主窗口显示对话框

dialog = QDialog()
dialog.ui = Ui_dialog()
dialog.ui.setupUi(self)
dialog.show()
dialog.exec_()

显示了对话框,但它是空的,所以没有按钮或我尝试过的任何其他小部件!?

【问题讨论】:

  • 您没有设置布局。您正在创建小部件,但没有将它们添加到任何东西。

标签: python pyqt5


【解决方案1】:

Ui_Dialog 的 setupUi 方法需要填写一个小部件,在您的情况下,您应该更改以下内容:

dialog.ui.setupUi(self)

到:

dialog.ui.setupUi(dialog)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多