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_())