如何创建多个/级联windows PyQt4?

How to create Multiple / cascading windows PyQt4?

我要创建2个windows上一个需要新建一个工程window下一个是工程GUI,下一个window已经创建完成我打算创建一个上层window。如何创建我的 Upper(新项目 window)?我可以通过在我的 class 中包含一个函数并从我的 运行() 调用我的函数来实现吗?或者我应该创建一个新的 class?我完全糊涂了帮帮我!

My Lower Window(主要项目代码)代码:

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")

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


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

最后我的 运行() 函数创建并调用 class

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

run()

如果我在 class 中执行新功能,window 首先显示上部 window 然后消失,然后显示下部 window:

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

我认为错误是什么时候调用函数什么时候在这个senario中添加我的函数调用?在 init 方法中?还是其他地方?

谢谢!

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

例如考虑一下,您已经为要创建的 window 创建了 .ui 文件,然后使用 pyuic4 将其转换为 .py,然后创建您的 class 赞:

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)

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