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实现文件名批量替换和内容替换
Mar 20 Python
python多进程操作实例
Nov 21 Python
基于python实现微信模板消息
Dec 21 Python
八大排序算法的Python实现
Jan 28 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
Python函数式编程
Jul 20 Python
Python selenium实现微博自动登录的示例代码
May 16 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
如何基于Python实现数字类型转换
Feb 07 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
Feb 17 Python
python将unicode和str互相转化的实现
May 11 Python
哪些是python中web开发框架
Jun 17 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
基于Zend的Config机制的应用分析
2013/05/02 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
PHP实现返回JSON和XML的类分享
2015/01/28 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
vue2 如何实现div contenteditable=“true”(类似于v-model)的效果
2017/02/08 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
Python中字符串的格式化方法小结
2016/05/03 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python实现的堆排序算法示例
2018/04/29 Python
pandas通过loc生成新的列方法
2018/11/28 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python 公共方法汇总解析
2019/09/16 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
魅力惠奢品线上平台:MEI.COM
2016/11/29 全球购物
12岁生日感言
2014/01/21 职场文书
安踏广告词改编版
2014/03/21 职场文书
四议两公开实施方案
2014/03/28 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
党支部半年考察意见
2015/06/01 职场文书
竞聘书的秘诀
2019/04/02 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
服务器间如何实现文件共享
2022/05/20 Servers
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang