一:安装pyqt5
python" id="highlighter_771961">
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