python - 单击按钮时打开一个新窗口 || PyQt5

标签 python user-interface pyqt5

我知道这个问题已经被问过多次了。但是我无法理解现有的例子。 我有一个代码可以创建一个带有名为“开始”的按钮的窗口。我希望应用程序在单击“开始”按钮时关闭当前窗口并打开一个新窗口。新窗口必须是空白窗口。

非常感谢任何帮助。

代码如下:

import sys
from PyQt5 import QtGui
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, 
     QToolTip, QMessageBox, QLabel


class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.title = "First Window"
        self.top = 100
        self.left = 100
        self.width = 680
        self.height = 500

        self.pushButton = QPushButton("Start", self)
        self.pushButton.move(275, 200)
        self.pushButton.setToolTip("<h3>Start the Session</h3>")
        self.main_window()

    def main_window(self):
        self.label = QLabel("Manager", self)
        self.label.move(285, 175)
        self.setWindowTitle(self.title)
        self.setGeometry(self.top, self.left, self.width, self.height)
        self.show()


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec())

最佳答案

试一试:

import sys
from PyQt5 import QtGui
from PyQt5.QtWidgets import (QApplication, QMainWindow, QPushButton, 
                             QToolTip, QMessageBox, QLabel)

class Window2(QMainWindow):                           # <===
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Window22222")

class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.title = "First Window"
        self.top = 100
        self.left = 100
        self.width = 680
        self.height = 500

        self.pushButton = QPushButton("Start", self)
        self.pushButton.move(275, 200)
        self.pushButton.setToolTip("<h3>Start the Session</h3>")

        self.pushButton.clicked.connect(self.window2)              # <===

        self.main_window()

    def main_window(self):
        self.label = QLabel("Manager", self)
        self.label.move(285, 175)
        self.setWindowTitle(self.title)
        self.setGeometry(self.top, self.left, self.width, self.height)
        self.show()

    def window2(self):                                             # <===
        self.w = Window2()
        self.w.show()
        self.hide()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Window()
    sys.exit(app.exec())

关于python - 单击按钮时打开一个新窗口 || PyQt5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53225320/

相关文章:

python - 如何使用 PyQt5 设置窗口图标?

python - 如何在分离模式下终止进程

python - 将对象列表从 pyqt5 传递到 qml 返回未定义

python - 将 NULL 值插入 double 据类型 MySQL Python

python - 为最大成对匹配排序数组

python - 从 Pandas Dataframe 列返回最大值和最小值的实际索引值

python - 在评估定义为类的列表的长度时

language-agnostic - 表单输入应该有多宽容?

android - 如何为 Flutter 中使用 itemBuilder 生成的列表中的每个项目分配不同的键?

java - 如何从 JTable 中获取鼠标选择的行