如何在Qt Designer(Python)中创建弹出窗口(将主窗口与对话框链接)

How to create a pop-up window (link a MainWindow with a Dialog) in Qt Designer (Python)?

本文关键字:窗口 链接 对话框 Qt Designer Python 创建      更新时间:2023-10-16

我正在尝试为我的应用程序构建一个"关于"对话框窗口。我的主窗口是"MainWindow"类型,"About"窗口是一个对话框,两者都是用QT Designer创建的,并用pyuic4-->gui_v1.py和About_v1.py 转换为".py"文件

在我的应用程序的主文件中,我为about对话框构建了第二个类:

import gui_v1
import about_v1
class AboutDialog(QtGui.QDialog, about_v1.Ui_Dialog):
    def __init__(self, parent=None):
        super(AboutDialog, self).__init__(parent)
        self.setupUi(self)

我在主文件中的主类中添加了open_about()函数,并将该函数链接到负责打开about窗口的菜单按钮:

class MainDialog(QtGui.QMainWindow, gui_v1.Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainDialog, self).__init__(parent)
        self.setupUi(self)
        QtCore.pyqtRemoveInputHook()
        [...]
        def open_about(self):
           app = QtGui.QApplication(sys.argv)
           form = AboutDialog()
           form.show()
           app.exec_()

我的主应用程序正在从最后一个功能运行:

if __name__ == '__main__':
    def main():
        app=QtGui.QApplication(sys.argv)
        form=MainDialog()
        form.show()
        app.exec_()
    main()

单击"关于"菜单项时,不会发生任何事情。我猜问题出在open_about()函数中,但我似乎找不到它是什么。谢谢你的帮助!

QMessageBox具有一些内置的about box功能。看看

QMessageBox.about (QWidget parent, QString caption, QString text)

所以你可以这样称呼它:

QMessageBox.about (self, "About whatever....", "The text you want to display in the box")

您可以在此处查看QMessageBox文档:

http://pyqt.sourceforge.net/Docs/PyQt4/qmessagebox.html