相关文章推荐
2 from PyQt5.QtWidgets import * 3 from PyQt5.QtCore import * 4 from PyQt5.QtGui import * 5 # ############################################### 6 # ######创建主窗口 7 # ############################################### 8 class FirstMainWindow(QMainWindow): 9 def __init__ (self, *args, ** kwargs): 10 super(). __init__ (*args, ** kwargs) 11 self.setWindowTitle( ' 主界面 ' ) 13 # ##### 创建界面 ###### 14 self.centralwidget = QWidget() 15 self.setCentralWidget(self.centralwidget) 16 self.Layout = QVBoxLayout(self.centralwidget) 18 # 设置顶部三个按钮 19 self.topwidget = QWidget() 20 self.Layout.addWidget(self.topwidget) 21 self.buttonLayout = QHBoxLayout(self.topwidget) 23 self.pushButton1 = QPushButton() 24 self.pushButton1.setText( " 打开主界面 " ) 25 self.buttonLayout.addWidget(self.pushButton1) 27 self.pushButton2 = QPushButton() 28 self.pushButton2.setText( " 打开对话框 " ) 29 self.buttonLayout.addWidget(self.pushButton2) 31 self.pushButton3 = QPushButton() 32 self.pushButton3.setText( " 打开提示框 " ) 33 self.buttonLayout.addWidget(self.pushButton3) 35 # 设置中间文本 36 self.label = QLabel() 37 self.label.setText( " 第一个主界面 " ) 38 self.label.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) 39 self.label.setAlignment(Qt.AlignCenter) 40 self.label.setFont(QFont( " Roman times " , 50 , QFont.Bold)) 41 self.Layout.addWidget(self.label) 43 # 设置状态栏 44 self.statusBar().showMessage( " 当前用户:一心狮 " ) 46 # 窗口最大化 47 self.showMaximized() 49 # ##### 三个按钮事件 ###### 50 self.pushButton1.clicked.connect(self.on_pushButton1_clicked) 51 self.pushButton2.clicked.connect(self.on_pushButton2_clicked) 52 self.pushButton3.clicked.connect(self.on_pushButton3_clicked) 54 # 按钮一:打开主界面 55 windowList = [] 56 def on_pushButton1_clicked(self): 57 the_window = SecondWindow() 58 self.windowList.append(the_window) # #注:没有这句,是不打开另一个主界面的! 59 self.close() 60 the_window.show() 63 # 按钮二:打开对话框 64 def on_pushButton2_clicked(self): 65 the_dialog = TestdemoDialog() 66 if the_dialog.exec_() == QDialog.Accepted: 67 pass 69 # 按钮三:打开提示框 70 def on_pushButton3_clicked(self): 71 QMessageBox.information(self, " 提示 " , " 这是information框! " ) 72 # QMessageBox.question(self, "提示", "这是question框!") 73 # QMessageBox.warning(self, "提示", "这是warning框!") 74 # QMessageBox.about(self, "提示", "这是about框!") 77 # ############################################### 78 # ######第二个主界面 79 # ############################################### 80 class SecondWindow(QMainWindow): 81 def __init__ (self, *args, ** kwargs): 82 super(). __init__ (*args, ** kwargs) 83 self.setWindowTitle( ' 第二主界面 ' ) 85 # 设置中间文本 86 self.label = QLabel() 87 self.label.setText( " 第二个主界面 " ) 88 self.label.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) 89 self.label.setAlignment(Qt.AlignCenter) 90 self.label.setFont(QFont( " Roman times " , 50 , QFont.Bold)) 91 self.setCentralWidget(self.label) 93 # 设置状态栏 94 self.statusBar().showMessage( " 当前用户:一心狮 " ) 96 # 窗口最大化 97 self.showMaximized() 100 # ##### 重写关闭事件,回到第一界面 101 windowList = [] 102 def closeEvent(self, event): 103 the_window = FirstMainWindow() 104 self.windowList.append(the_window) # #注:没有这句,是不打开另一个主界面的! 105 the_window.show() 106 event.accept() 108 # ############################################### 109 # ######对话框 110 # ############################################### 111 class TestdemoDialog(QDialog): 112 def __init__ (self, *args, ** kwargs): 113 super(). __init__ (*args, ** kwargs) 114 self.setWindowTitle( ' 对话框 ' ) 116 # ## 设置对话框类型 117 self.setWindowFlags(Qt.Tool) 120 # ############################################### 121 # ######程序入门 122 # ############################################### 123 if __name__ == " __main__ " : 124 app = QApplication(sys.argv) 125 the_mainwindow = FirstMainWindow() 126 the_mainwindow.show() 127 sys.exit(app.exec_())
 
推荐文章