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分析git log日志示例
Feb 27 Python
Python运用于数据分析的简单教程
Mar 27 Python
整理Python 常用string函数(收藏)
May 30 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
python购物车程序简单代码
Apr 18 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
Python语法分析之字符串格式化
Jun 13 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
Python如何执行系统命令
Sep 23 Python
如何基于Python实现word文档重新排版
Sep 29 Python
Python 类,对象,数据分类,函数参数传递详解
Sep 25 Python
68行Python代码实现带难度升级的贪吃蛇
Jan 18 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
JavaScript 继承详解(一)
2009/07/13 Javascript
Javascript脚本实现静态网页加密实例代码
2013/11/05 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
avalonjs制作响应式瀑布流特效
2015/05/06 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
jquery实用技巧之输入框提示语句
2016/07/28 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
Angular 1.x个人使用的经验小结
2017/07/19 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python使用scrapy抓取网站sitemap信息的方法
2015/04/08 Python
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
python动态网页批量爬取
2016/02/14 Python
利用Python获取操作系统信息实例
2016/09/02 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
python实现批量注册网站用户的示例
2019/02/22 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
python 利用百度API识别图片文字(多线程版)
2020/12/14 Python
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
《月球之谜》教学反思
2014/04/10 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
学校端午节活动方案
2014/08/23 职场文书
2015年财务部工作总结
2015/04/10 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python