如何创建多个/级联窗口 PyQt4?

Posted

技术标签:

【中文标题】如何创建多个/级联窗口 PyQt4?【英文标题】:How to create Multiple / cascading windows PyQt4? 【发布时间】:2016-12-26 16:40:59 【问题描述】:

我想创建 2 个窗口,上面的一个需要是一个新的项目窗口,下面的一个是项目 GUI,我已经完全创建了我的下窗口,现在我正计划创建一个上窗口。如何创建我的上层(新项目窗口)?我可以通过在我的类中包含一个函数并从我的 run() 调用我的函数来做到这一点吗?还是我应该创建一个新课程?我完全糊涂了帮帮我!

我的下窗口(主项目代码)代码:

class Softw(QtGui.QMainWindow, Doftw.Ui_MainWindow):
    def __init__(self, parent=None):
        super(Softw, self).__init__(parent)
        self.setGeometry(50, 50, 700, 565)
        self.setWindowTitle("Softy Softw")

--------------


--------(代码中的一些函数)

最后是创建和调用类的 run() 函数

def run():
        app=QtGui.QApplication(sys.argv)
        GUI = Softw()
        GUI.show()
        sys.exit(app.exec_())

run()

如果我在课堂上执行新功能,窗口首先显示上部窗口然后消失,然后显示下部窗口:

def newProject(self):
    window = QtGui.QWidget()
    window.setGeometry(700,330,500,300)
    window.setWindowTitle("New Project")
    window.show()

我认为错误是何时调用该函数何时在此场景中添加我的函数调用?在 init 方法中?还是其他地方?

谢谢!

【问题讨论】:

你想要一个带有 2 个小部件的 gui,一个在另一个下面吗? 是的,这正是我想要的@eyllanesc 【参考方案1】:

您可以使用 Qt Designer 为您想要的每个窗口创建 QWidget,然后您可以将它们作为一个类添加到您的文件中:

例如,您已经为要创建的一个窗口创建了 .ui 文件,然后使用 pyuic4 将其转换为 .py,然后创建您的类,如下所示:

from Ui_created import the UI_class

class NewProject(QtGui.QMainWindow, Ui_class):

    def __init__(self, parent = None):
        super(NewProject, self).__init__(parent)
        self.setupUi(self)

现在您可以将它连接到主类中的某个按钮

【讨论】:

以上是关于如何创建多个/级联窗口 PyQt4?的主要内容,如果未能解决你的问题,请参考以下文章

PyQt4:如何使用保留空间制作undercorated窗口

如何在有循环和多个级联路径的情况下配置级联删除

循环或多个级联路径。 SQL 错误?

多个球的 Haar 级联跟踪

PyQt4 - clicked.connect 记住以前的连接?

如何更新链接到多个表的 FK - 更新时的级联