pyqt5 主界面打开新主界面的实现模板

简介: 说明本例给出了三种窗口打开方式。其中主界面打开主界面的方式,比较实用,却少有示例。特发布于此,希望对大家有帮助。一.主界面打开 新的主界面二.主界面打开 对话框三.

说明

本例给出了三种窗口打开方式。
其中主界面打开主界面的方式,比较实用,却少有示例。特发布于此,希望对大家有帮助。

一.主界面打开 新的主界面
二.主界面打开 对话框
三.主界面打开 提示框

【如下代码,完全复制,直接运行,即可使用】

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
################################################
#######创建主窗口
################################################
class FirstMainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('主界面')

        ###### 创建界面 ######
        self.centralwidget = QWidget()
        self.setCentralWidget(self.centralwidget)
        self.Layout = QVBoxLayout(self.centralwidget)

        # 设置顶部三个按钮
        self.topwidget = QWidget()
        self.Layout.addWidget(self.topwidget)
        self.buttonLayout = QHBoxLayout(self.topwidget)

        self.pushButton1 = QPushButton()
        self.pushButton1.setText("打开主界面")
        self.buttonLayout.addWidget(self.pushButton1)

        self.pushButton2 = QPushButton()
        self.pushButton2.setText("打开对话框")
        self.buttonLayout.addWidget(self.pushButton2)

        self.pushButton3 = QPushButton()
        self.pushButton3.setText("打开提示框")
        self.buttonLayout.addWidget(self.pushButton3)



        # 设置中间文本
        self.label = QLabel()
        self.label.setText("第一个主界面")
        self.label.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setFont(QFont("Roman times", 50, QFont.Bold))
        self.Layout.addWidget(self.label)

        # 设置状态栏
        self.statusBar().showMessage("当前用户:一心狮")

        # 窗口最大化
        self.showMaximized()

        ###### 三个按钮事件 ######
        self.pushButton1.clicked.connect(self.on_pushButton1_clicked)
        self.pushButton2.clicked.connect(self.on_pushButton2_clicked)
        self.pushButton3.clicked.connect(self.on_pushButton3_clicked)




    # 按钮一:打开主界面
    windowList = []
    def on_pushButton1_clicked(self):
        the_window =SecondWindow()
        self.windowList.append(the_window)   ##注:没有这句,是不打开另一个主界面的!
        self.close()
        the_window.show()


    # 按钮二:打开对话框
    def on_pushButton2_clicked(self):
        the_dialog = TestdemoDialog()
        if the_dialog.exec_() == QDialog.Accepted:
            pass



    # 按钮三:打开提示框
    def on_pushButton3_clicked(self):
        QMessageBox.information(self, "提示", "这是information框!")
        #QMessageBox.question(self, "提示", "这是question框!")
        #QMessageBox.warning(self, "提示", "这是warning框!")
        #QMessageBox.about(self, "提示", "这是about框!")





################################################
#######第二个主界面
################################################
class SecondWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('第二主界面')

        # 设置中间文本
        self.label = QLabel()
        self.label.setText("第二个主界面")
        self.label.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding))
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setFont(QFont("Roman times", 50, QFont.Bold))
        self.setCentralWidget(self.label)

        # 设置状态栏
        self.statusBar().showMessage("当前用户:一心狮")

        # 窗口最大化
        self.showMaximized()



    ###### 重写关闭事件,回到第一界面
    windowList = []
    def closeEvent(self, event):
        the_window = FirstMainWindow()
        self.windowList.append(the_window)  ##注:没有这句,是不打开另一个主界面的!
        the_window.show()
        event.accept()




################################################
#######对话框
################################################
class TestdemoDialog(QDialog):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('对话框')

        ### 设置对话框类型
        self.setWindowFlags(Qt.Tool)





################################################
#######程序入门
################################################
if __name__ == "__main__":
    app = QApplication(sys.argv)
    the_mainwindow = FirstMainWindow()
    the_mainwindow.show()
    sys.exit(app.exec_())

本文如有帮助,敬请留言鼓励。
本文如有错误,敬请留言改进。

目录
相关文章
|
3月前
|
JSON Linux 数据安全/隐私保护
Qt实现菠菜登录界面
Qt实现菠菜登录界面
|
22天前
Qt实现的多菜单选择界面
Qt实现的多菜单选择界面
23 0
|
关系型数据库 MySQL 数据库
Qt实现登陆界面(含代码)
Qt实现登陆界面(含代码)
350 0
Qt实现登陆界面(含代码)
|
编解码 缓存 编译器
Unity 菜单界面的简单介绍
Unity 菜单界面的简单介绍
172 0
Unity 菜单界面的简单介绍
|
Java
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
306 0
swing做一个简单的记事本(有菜单的样式、右键弹出菜单、以及实现“新建”和“打开”功能)
VC如何打开代码对应的界面编辑窗口
VC如何打开代码对应的界面编辑窗口
130 0
VC如何打开代码对应的界面编辑窗口
使用VC做一个简单的UI界面对话框
使用VC做一个简单的UI界面对话框
451 0
使用VC做一个简单的UI界面对话框
|
前端开发
JavaWeb 省市级菜单如何被选中
JavaWeb 省市级菜单如何被选中
103 0
JavaWeb 省市级菜单如何被选中
|
Python
PySide教程:一个简单的点击按钮示例
  在这篇文章里,我们将为你展示如何使用PySide使用信号、槽机制。基本来说,这是Qt提供给你的允许一个图形控件与其他图形控件或者python代码进行通讯的特性。   我们将要创建一个应用,你点击应用中的按钮后将在Python终端里显示"Hello World"字样。
1387 0
点击abap的选择屏幕工具栏按钮下载excel模板
自己编写一个report,分配了事务码以后,执行该事务码,在选择屏幕界面看到一个按钮,点击这个按钮,就可以将预先上传至sap服务器的excel文件下载到本地。服务器上的excel文件是预先通过事务码SMW0上传到SAP服务器系统的:选择包,然后执行,看看里面有什么如下图,就是目前SAP系统中存在的e.
2764 0