繁体   English   中英

如何在python中单击按钮打开新窗口?

[英]How to open a new window with a button click in python?

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.uic import *
class new1(QDialog):
    def __init__(self):
        super(new1, self).__init__()
        loadUi('gui.ui',self)
        self.setWindowTitle("New Window")
        self.pushButton.clicked.connect(self.clicked1)
    def clicked1(self):
        loadUi('gui2.ui',self)


app=QApplication(sys.argv)
widget=new1()
widget.show()

sys.exit(app.exec_())

单击按钮时,我想打开“ gui2.ui”。此代码不起作用。有帮助吗?

你需要你的Qt Designer文件转换为Python文件,要做到这一点,你可以使用命令行命令pyuic5的UI文件和pyrcc5的RC文件。

要将ui文件转换为Python:

pyuic5 --import-from=widgets -x your_file.ui -o your_file.py

要将rc文件转换为Python:

pyrcc5 your_file.rc -o your_file.py

转换完文件后,请勿直接修改它们,因为如果您对UI进行更改,可以重新生成它们,以使用它们并从它们继承:

 class Gui2Dialog(Ui_Gui2, QDialog):
    def __init__(self):
        Ui_Gui2.__init__(self)
        QDialog.__init__(self)

        self.setupUi(self)

        self.setWindowTitle("Gui 2")

class GuiDialog(Ui_Gui, QDialog):
    def __init__(self):
        Ui_Gui.__init__(self)
        QDialog.__init__(self)

        self.setupUi(self)

        self.setWindowTitle("New Window")
        self.pushButton.clicked.connect(self.clicked1)

    def clicked1(self):
        gui2_dialog = Gui2Dialog()
        gui2_dialog.exec_()
        gui2_dialog.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM