pyqt5-主界面打開(kāi)新主界面的實(shí)現(xiàn)模板

說(shuō)明

本例給出了三種窗口打開(kāi)方式。
其中主界面打開(kāi)主界面的方式,比較實(shí)用,卻少有示例。特發(fā)布于此,希望對(duì)大家有幫助。

一.主界面打開(kāi) 新的主界面
二.主界面打開(kāi) 對(duì)話框
三.主界面打開(kāi) 提示框

【如下代碼,完全復(fù)制,直接運(yùn)行,即可使用】

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

        ###### 創(chuàng)建界面 ######
        self.centralwidget = QWidget()
        self.setCentralWidget(self.centralwidget)
        self.Layout = QVBoxLayout(self.centralwidget)

        # 設(shè)置頂部三個(gè)按鈕
        self.topwidget = QWidget()
        self.Layout.addWidget(self.topwidget)
        self.buttonLayout = QHBoxLayout(self.topwidget)

        self.pushButton1 = QPushButton()
        self.pushButton1.setText("打開(kāi)主界面")
        self.buttonLayout.addWidget(self.pushButton1)

        self.pushButton2 = QPushButton()
        self.pushButton2.setText("打開(kāi)對(duì)話框")
        self.buttonLayout.addWidget(self.pushButton2)

        self.pushButton3 = QPushButton()
        self.pushButton3.setText("打開(kāi)提示框")
        self.buttonLayout.addWidget(self.pushButton3)



        # 設(shè)置中間文本
        self.label = QLabel()
        self.label.setText("第一個(gè)主界面")
        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)

        # 設(shè)置狀態(tài)欄
        self.statusBar().showMessage("當(dāng)前用戶:一心獅")

        # 窗口最大化
        self.showMaximized()

        ###### 三個(gè)按鈕事件 ######
        self.pushButton1.clicked.connect(self.on_pushButton1_clicked)
        self.pushButton2.clicked.connect(self.on_pushButton2_clicked)
        self.pushButton3.clicked.connect(self.on_pushButton3_clicked)




    # 按鈕一:打開(kāi)主界面
    windowList = []
    def on_pushButton1_clicked(self):
        the_window =SecondWindow()
        self.windowList.append(the_window)   ##注:沒(méi)有這句,是不打開(kāi)另一個(gè)主界面的!
        self.close()
        the_window.show()


    # 按鈕二:打開(kāi)對(duì)話框
    def on_pushButton2_clicked(self):
        the_dialog = TestdemoDialog()
        if the_dialog.exec_() == QDialog.Accepted:
            pass



    # 按鈕三:打開(kāi)提示框
    def on_pushButton3_clicked(self):
        QMessageBox.information(self, "提示", "這是information框!")
        #QMessageBox.question(self, "提示", "這是question框!")
        #QMessageBox.warning(self, "提示", "這是warning框!")
        #QMessageBox.about(self, "提示", "這是about框!")





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

        # 設(shè)置中間文本
        self.label = QLabel()
        self.label.setText("第二個(gè)主界面")
        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)

        # 設(shè)置狀態(tài)欄
        self.statusBar().showMessage("當(dāng)前用戶:一心獅")

        # 窗口最大化
        self.showMaximized()



    ###### 重寫(xiě)關(guān)閉事件,回到第一界面
    windowList = []
    def closeEvent(self, event):
        the_window = FirstMainWindow()
        self.windowList.append(the_window)  ##注:沒(méi)有這句,是不打開(kāi)另一個(gè)主界面的!
        the_window.show()
        event.accept()




################################################
#######對(duì)話框
################################################
class TestdemoDialog(QDialog):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.setWindowTitle('對(duì)話框')

        ### 設(shè)置對(duì)話框類(lèi)型
        self.setWindowFlags(Qt.Tool)





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

本文如有幫助,敬請(qǐng)留言鼓勵(lì)。
本文如有錯(cuò)誤,敬請(qǐng)留言改進(jìn)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容