本文主要是介绍在PyQt5中实现点击按钮打开新窗口功能—窗口的跳转功能实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
百度搜索“pyqt5中如何点击按钮打开新的窗口”,自动生成以下参考代码。
在PyQt5中,要实现点击按钮打开新窗口,你需要定义一个新的窗口类,并在按钮的点击信号(clicked)处理函数中创建并显示这个新窗口。以下是一个简单的例子
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QWidget, QVBoxLayout, QMessageBoxclass NewWindow(QWidget):def __init__(self):super().__init__()self.setWindowTitle("新窗口")self.show()class MainWindow(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("主窗口")self.button = QPushButton("打开新窗口")self.button.clicked.connect(self.open_new_window)layout = QVBoxLayout()layout.addWidget(self.button)central_widget = QWidget()central_widget.setLayout(layout)self.setCentralWidget(central_widget)def open_new_window(self):# 创建并显示新窗口self.new_window = NewWindow()if __name__ == "__main__":app = QApplication(sys.argv)mainWin = MainWindow()mainWin.show()sys.exit(app.exec_())
在这个例子中,MainWindow是主窗口类,它有一个按钮用于打开新窗口。当按钮被点击时,open_new_window方法会被调用,创建并显示NewWindow实例,即新窗口。
基于上述思路,使用一个主窗口类mainWindow管理多个窗口的跳转(窗口的显示和消失)
class mainWindow(QMainWindow):def __init__(self):super(mainWindow, self).__init__()self.login_window = loginWindow()self.login_window.show()self.menu_window = menuWindow()self.create_window = createWindow()# 连接信号与槽self.login_window.send_data.connect(self.menu_window.receive_data)# 点击登录按钮弹出新窗口,此登录界面窗口关闭self.login_window.login_pushButton.clicked.connect(self.open_menu_window)# 点击新建需求按钮,跳转出需求创建窗口self.menu_window.my_new_order_pushButton.clicked.connect(self.open_create_window)def open_menu_window(self):# 创建并显示新窗口self.menu_window.show()self.login_window.hide()def open_create_window(self):# 创建并显示新窗口self.create_window.show()self.menu_window.hide()if __name__ == "__main__":app = QApplication(sys.argv)ui = mainWindow()# ui.show()sys.exit(app.exec_())
利用窗口逻辑业务代码与界面生成代码相分离的原则,在main.py中重新定义一个新的窗口类继承界面代码的类(界面代码在另外的.py文件)。
官方文档
QMainWindow类:https://doc.qt.io/qt-5/qmainwindow.html
QWidget类:https://doc.qt.io/qt-5/qwidget.html
QDialog类:https://doc.qt.io/qt-5/qdialog.html
这篇关于在PyQt5中实现点击按钮打开新窗口功能—窗口的跳转功能实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!