【问题标题】:Close and Open new Window PYQT5关闭并打开新窗口 PYQT5
【发布时间】:2018-05-16 05:14:29
【问题描述】:

我想在一个窗口中按下一个按钮并关闭该窗口,然后打开一个新窗口

我该怎么做?

我已经尝试过了,但它会向控制台发送此消息:

QCoreApplication::exec: 事件循环已经在运行

class Window(QWidget):
    def __init__(self,parent = None):
        super().__init__(parent)
        self.title = 'pySim Z-eighty'
        self.left = 0
        self.top = 0
        self.width = 1200
        self.height = 3000
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.button = QPushButton("Z80")
        self.button1 = QPushButton()
        self.button2 = QPushButton()
        self.container =    QWidget()
        self.layout = QGridLayout()
        self.layout.addWidget(self.button1, 1, 0)
        self.layout.addWidget(self.button, 1, 1)
        self.layout.addWidget(self.button2, 1, 2)
        self.container.setLayout(self.layout)
        self.layoutPrincipal = QBoxLayout(0)
        self.layoutPrincipal.addWidget(self.container)
        self.setLayout(self.layoutPrincipal)
        self.button.pressed.connect(self.IniciarInterfaz)

    def IniciarInterfaz(self):
        self.hide()
        app = QApplication(sys.argv)
        ex = mainWindow()
        ex.setStyleSheet("background-color: #fff")
        ex.show()
        sys.exit(app.exec_())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Window()
    ex.show()
    sys.exit(app.exec_())

我的主要问题是当我按下按钮时我无法打开新窗口

【问题讨论】:

  • 显示你的代码。
  • 为了改善您的问题,您应该阅读显示以下链接的内容:How to Ask,问题的原因可能有多种原因,我们不想浪费时间猜测。
  • 我的问题是当我按下 Z80 按钮并调用 self.IniciarInterfaz 时,它无法打开我的新窗口
  • 什么是主窗口?
  • 新窗口,我想用Z80按钮打开

标签: python python-3.x pyqt pyqt5


【解决方案1】:

PyQt 应用程序中只能有一个QApplication,因此如果您已经创建了它,请不要再创建它。

另一个问题是变量只存在于上下文中,在你的情况下是mainWindow,所以在函数StartInterface的最后会消除这个变量和窗口,解决办法是让mainWindow成为类的成员,所以context 将是类而不是函数,所以它会保持正确。

def IniciarInterfaz(self):
    self.hide()
    self.ex = mainWindow()
    self.ex.setStyleSheet("background-color: #fff")
    self.ex.show()

【讨论】:

    【解决方案2】:

    PYQT 没有打开和关闭方法,...

    hide() 和 show() 方法你可以使用任何你想要的按钮,...

    def PlatformType_Clicked(self):
        dialog.hide()
        dialog1.show()
    

    【讨论】:

      猜你喜欢
      • 2016-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多