脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python使用PyQt5的简单方法

python使用PyQt5的简单方法

2021-06-03 00:09huaweichenai Python

这篇文章主要介绍了python使用PyQt5的简单方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一:安装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_())

现象如下:

python使用PyQt5的简单方法

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

现象如下:

python使用PyQt5的简单方法

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按钮,窗口关闭):

python使用PyQt5的简单方法

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

现象如下:

python使用PyQt5的简单方法

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

现象如下:

python使用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
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_())

现象为:

python使用PyQt5的简单方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://segmentfault.com/a/1190000018309531

延伸 · 阅读

精彩推荐