python使用PyQt5的简单方法


Posted in Python onFebruary 27, 2019

一:安装PyQt5

pip install pyqt5

二:PyQt5简单使用

1:使用PyQt5创建一个简单窗口

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:给创建的窗口添加标题和图标

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:给创建的窗口设置按钮及设置提示语

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)信息

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:配置输入框

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的简单方法

三:将上述方法总结一下实现了一个简单的功能,如下:

功能为:在输入框中输入值过后,点击按钮就会打印出你输入的值,关闭窗口会有提示

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的简单方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取apk文件URL地址实例
Nov 01 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
Flask的图形化管理界面搭建框架Flask-Admin的使用教程
Jun 13 Python
python文件拆分与重组实例
Dec 10 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
使用tensorflow实现VGG网络,训练mnist数据集方式
May 26 Python
opencv 形态学变换(开运算,闭运算,梯度运算)
Jul 07 Python
Python descriptor(描述符)的实现
Nov 15 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
Python创建字典的八种方式
Feb 27 #Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 #Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 #Python
Python使用字典的嵌套功能详解
Feb 27 #Python
Python list列表中删除多个重复元素操作示例
Feb 27 #Python
WxPython建立批量录入框窗口
Feb 27 #Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 #Python
You might like
如何用php生成扭曲及旋转的验证码图片
2013/06/07 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
聊一聊jQuery插件uploadify使用方法
2016/08/24 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
vue2中的keep-alive使用总结及注意事项
2017/12/21 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[51:15]完美世界DOTA2联赛PWL S2 PXG vs Magma 第一场 11.21
2020/11/24 DOTA
理解Python中的With语句
2016/03/18 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
python+opencv实现摄像头调用的方法
2019/06/22 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
详解rem 适配布局
2018/10/31 HTML / CSS
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
不同浏览器创建XMLHttpRequest方法有什么不同
2014/11/17 面试题
信息系统专业个人求职信范文
2013/12/07 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
毕业酒会致辞
2015/07/29 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
试了下Golang实现try catch的方法
2021/07/01 Golang
豆瓣2021评分最高动画剧集-豆瓣评分最高的动画剧集2021
2022/03/18 日漫