内置窗口 pyqt5
1.使用Qt Designer设计三个窗口
注意:在主窗口中需要添加一个girdLayout
2.创建**.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
from
PyQt5.QtWidgets
import
QMainWindow, QApplication
from
main
import
Ui_Main
from
show
import
Ui_Show
from
new
import
Ui_New
import
sys
class
Main(QMainWindow,Ui_Main):
def
__init__(
self
):
super
(Main,
self
).__init__()
self
.setupUi(
self
)
self
.child1
=
Show()
self
.child2
=
New()
self
.action_2.triggered.connect(
self
.New)
self
.action.triggered.connect(
self
.Show)
def
Show(
self
):
self
.gridLayout.addWidget(
self
.child1)
#将窗口放入girdLayout中
self
.child1.show()
#打开子窗口1
def
New(
self
):
self
.gridLayout_2.addWidget(
self
.child2)
self
.child2.show()
class
New(QMainWindow,Ui_New):
def
__init__(
self
):
super
(New,
self
).__init__()
self
.setupUi(
self
)
self
.pushButton.clicked.connect(
self
.Close)
def
Close(
self
):
self
.close()
class
Show(QMainWindow,Ui_Show):
def
__init__(
self
):
super
(Show,
self
).__init__()
self
.setupUi(
self
)
if
__name__
=
=
'__main__'
:
app
=
QApplication(sys.argv)
Main
=
Main()
Show
=
Show()
New
=
New()
Main.show()
sys.exit(app.exec_())
|
3.在主窗口里有两个选项(“初始”和“新建”)与两个子窗口关联
4.“初始”打开
5.“新建”打开
###############################################
小技巧
发现出现了两个底边那个东西
在由窗口文件生成的.py文件中找到如下代码
1
2
3
|
self
.statusbar
=
QtWidgets.QStatusBar(MainWindow)
self
.statusbar.setObjectName(
"statusbar"
)
MainWindow.setStatusBar(
self
.statusbar)
|
或者在Qt Designer设计时找到
删掉任意一个就OK了