【问题标题】:Good way of implementing more windows in PyQt在 PyQt 中实现更多窗口的好方法
【发布时间】:2014-07-25 13:01:20
【问题描述】:

这里描述了用户单击按钮后如何打开新窗口:

https://stackoverflow.com/a/21414775/1898982

这里:

https://stackoverflow.com/a/13519181/1898982

class Form1(QtGui.QWidget, Ui_Form1):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)
        self.button1.clicked.connect(self.handleButton)
        self.window2 = None

    def handleButton(self):
        if self.window2 is None:
            self.window2 = Form2(self)
        self.window2.show()

class Form2(QtGui.QWidget, Ui_Form2):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setupUi(self)

我想开发一个包含几个步骤的 GUI 应用程序。一旦用户单击下一步,当前窗口将关闭并打开另一个窗口。从技术上讲,我可以像上面描述的那样做到这一点:每个窗口都会打开一个新窗口。几步之后,这几乎是嵌套的。

有没有更好的方法来做到这一点?

我想在我的 main.js 中有控制流。像这样的:

main()
   window1 = win2()
   window1.show()
   wait until button in window1 is clicked, then
   window1.close()

   window2 = win2()
   window2.show()
   wait until button in window2 is clicked, then
   window1.close()
   ....

【问题讨论】:

  • 也许你想要QWizard

标签: python user-interface pyqt pyqt4


【解决方案1】:

我建议使用QWizardQStackedWidget 类来执行此任务。您可以使用这两个类中的任何一个轻松地在小部件或窗口之间切换。请参阅QWizardQStackedWidget 文档。

【讨论】:

    【解决方案2】:

    Qt 为这种情况提供了特殊的小部件,称为QWidget。看它。它也可以在 Qt4 中使用。

    【讨论】:

      猜你喜欢
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2013-09-09
      • 1970-01-01
      相关资源
      最近更新 更多