一:安装pyqt5
1
|
pip install pyqt5 |
二:pyqt5简单使用
1:使用pyqt5创建一个简单窗口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import sys from pyqt5 import qtwidgets #创建一个应用(application)对象,sys.argv参数是一个来自命令行的参数列表, # python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。 app = qtwidgets.qapplication(sys.argv) #创建一个widget组件基础类 windows = qtwidgets.qwidget() #设置widget组件的大小(w,h) windows.resize( 500 , 500 ) #设置widget组件的位置(x,y) windows.move( 100 , 100 ) """ #设置widget组件的位置居中 qr = windows.framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) windows.move(qr.topleft()) """ #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h) #windows.setgeometry(100,100,500,500) #show()方法在屏幕上显示出widget组件 windows.show() #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过 sys.exit(app.exec_()) |
现象如下:
2:给创建的窗口添加标题和图标
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
|
import sys from pyqt5 import qtwidgets,qtgui #创建一个应用(application)对象,sys.argv参数是一个来自命令行的参数列表, # python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。 app = qtwidgets.qapplication(sys.argv) #创建一个widget组件基础类 windows = qtwidgets.qwidget() #设置widget组件的大小(w,h) windows.resize( 500 , 500 ) #设置widget组件的位置(x,y) windows.move( 100 , 100 ) """ #设置widget组件的位置居中 qr = windows.framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) windows.move(qr.topleft()) """ #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h) #windows.setgeometry(100,100,500,500) #给widget组件设置标题 windows.setwindowtitle( '标题' ) #给widget组件设置图标 windows.setwindowicon(qtgui.qicon( '2.png' )) #show()方法在屏幕上显示出widget组件 windows.show() #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过 sys.exit(app.exec_()) |
现象如下:
3:给创建的窗口设置按钮及设置提示语
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
42
43
44
45
|
import sys from pyqt5 import qtwidgets,qtgui #创建一个应用(application)对象,sys.argv参数是一个来自命令行的参数列表, # python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。 app = qtwidgets.qapplication(sys.argv) #创建一个widget组件基础类 windows = qtwidgets.qwidget() #设置widget组件的大小(w,h) windows.resize( 500 , 500 ) #设置widget组件的位置(x,y) windows.move( 100 , 100 ) """ #设置widget组件的位置居中 qr = windows.framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) windows.move(qr.topleft()) """ #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h) #windows.setgeometry(100,100,500,500) #给widget组件设置标题 windows.setwindowtitle( '标题' ) #给widget组件设置图标 windows.setwindowicon(qtgui.qicon( '2.png' )) #设置提示语的字体和大小 qtwidgets.qtooltip.setfont(qtgui.qfont( 'sansserif' , 10 )) #给widget组件设置提示语 windows.settooltip( '这是窗口提示' ) #设置按钮并给按钮命名 btn = qtwidgets.qpushbutton( 'button' ,windows) #给按钮设置位置(x,y,w,h) btn.setgeometry( 200 , 200 , 100 , 50 ) #给按钮设置提示语 btn.settooltip( '这是按钮提示' ) #设置按钮样式 btn.setstylesheet( "background-color: rgb(164, 185, 255);" "border-color: rgb(170, 150, 163);" "font: 75 12pt \"arial narrow\";" "color: rgb(126, 255, 46);" ) #点击按钮关闭创建的窗口 btn.clicked.connect(qtcore.qcoreapplication.instance().quit) #show()方法在屏幕上显示出widget组件 windows.show() #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过 sys.exit(app.exec_()) |
现象如下(点击button按钮,窗口关闭):
4:设置标签(lable)信息
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
|
import sys from pyqt5 import qtwidgets,qtgui,qtcore #创建一个应用(application)对象,sys.argv参数是一个来自命令行的参数列表, # python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。 app = qtwidgets.qapplication(sys.argv) #创建一个widget组件基础类 windows = qtwidgets.qwidget() #设置widget组件的大小(w,h) windows.resize( 500 , 500 ) #设置widget组件的位置(x,y) windows.move( 100 , 100 ) """ #设置widget组件的位置居中 qr = windows.framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) windows.move(qr.topleft()) """ #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h) #windows.setgeometry(100,100,500,500) #给widget组件设置标题 windows.setwindowtitle( '标题' ) #给widget组件设置图标 windows.setwindowicon(qtgui.qicon( '2.png' )) #设置lable信息 label = qtwidgets.qlabel(windows) label.setgeometry(qtcore.qrect( 100 , 10 , 100 , 60 )) label.settext( '这是lable信息' ) label.setobjectname( 'label' ) #show()方法在屏幕上显示出widget组件 windows.show() #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过 sys.exit(app.exec_()) |
现象如下:
5:配置输入框
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
|
import sys from pyqt5 import qtwidgets,qtgui,qtcore,qt #创建一个应用(application)对象,sys.argv参数是一个来自命令行的参数列表, # python脚本可以在shell中运行。这是我们用来控制我们应用启动的一种方法。 app = qtwidgets.qapplication(sys.argv) #创建一个widget组件基础类 windows = qtwidgets.qwidget() #设置widget组件的大小(w,h) windows.resize( 500 , 500 ) #设置widget组件的位置(x,y) windows.move( 100 , 100 ) """ #设置widget组件的位置居中 qr = windows.framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) windows.move(qr.topleft()) """ #等同于 w.resize(500,500)和w.move(100,100)两句结合,(x,y,w,h) #windows.setgeometry(100,100,500,500) #给widget组件设置标题 windows.setwindowtitle( '标题' ) #给widget组件设置图标 windows.setwindowicon(qtgui.qicon( '2.png' )) #设置输入框 textbox = qt.qlineedit(windows) textbox.resize( 100 , 20 ) textbox.move( 50 , 50 ) #show()方法在屏幕上显示出widget组件 windows.show() #循环执行窗口触发事件,结束后不留垃圾的退出,不添加的话新建的widget组件就会一闪而过 sys.exit(app.exec_()) |
现象如下:
三:将上述方法总结一下实现了一个简单的功能,如下:
功能为:在输入框中输入值过后,点击按钮就会打印出你输入的值,关闭窗口会有提示
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import sys from pyqt5 import qtwidgets,qtgui,qtcore,qt class gui(qtwidgets.qwidget): def __init__( self ): #初始化————init__ super ().__init__() self .initgui() def initgui( self ): #设置窗口大小 self .resize( 500 , 500 ) #设置窗口位置(下面配置的是居于屏幕中间) qr = self .framegeometry() cp = qtwidgets.qdesktopwidget().availablegeometry().center() qr.movecenter(cp) self .move(qr.topleft()) #设置窗口标题和图标 self .setwindowtitle( '窗口标题' ) self .setwindowicon(qtgui.qicon( '2.png' )) #设置窗口提示 self .settooltip( '窗口提示' ) #设置label信息 self .label = qtwidgets.qlabel( self ) self .label.setgeometry(qtcore.qrect( 100 , 10 , 100 , 60 )) self .label.settext( '这是lable信息' ) self .label.setobjectname( 'label' ) # 设置label提示 self .label.settooltip( 'label提示' ) #设置输入框 self .textbox = qt.qlineedit( self ) self .textbox.resize( 100 , 20 ) self .textbox.move( 100 , 50 ) # 设置输入框提示 self .textbox.settooltip( '输入框提示' ) #设置按钮 self .btn = qtwidgets.qpushbutton( '按钮' , self ) self .btn.resize( 100 , 20 ) self .btn.move( 200 , 50 ) # 设置按钮样式 self .btn.setstylesheet( "background-color: rgb(164, 185, 255);" "border-color: rgb(170, 150, 163);" "font: 75 12pt \"arial narrow\";" "color: rgb(126, 255, 46);" ) # 设置按钮提示 self .btn.settooltip( '按钮提示' ) #点击鼠标触发事件 self .btn.clicked.connect( self .clickbtn) #展示窗口 self .show(); #点击鼠标触发函数 def clickbtn( self ): #打印出输入框的信息 textboxvalue = self .textbox.text() qtwidgets.qmessagebox.question( self , "信息" , '你输入的输入框内容为:' + textboxvalue,qtwidgets.qmessagebox.ok, qtwidgets.qmessagebox.ok) #清空输入框信息 self .textbox.settext('') #关闭窗口事件重写 def closeevent( self , qcloseevent): reply = qtwidgets.qmessagebox.question( self , '警告' , "确定关闭当前窗口?" , qtwidgets.qmessagebox.yes | qtwidgets.qmessagebox.no, qtwidgets.qmessagebox.no) if reply = = qtwidgets.qmessagebox.yes: qcloseevent.accept() else : qcloseevent.ignore() if __name__ = = '__main__' : app = qtwidgets.qapplication(sys.argv) gui = gui() sys.exit(app.exec_()) |
现象为:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://segmentfault.com/a/1190000018309531