博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 使用PyQt5
阅读量:6367 次
发布时间:2019-06-23

本文共 6844 字,大约阅读时间需要 22 分钟。

一:安装PyQt5

pip install pyqt5

二:PyQt5简单使用

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

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

现象如下:

clipboard.png
2:给创建的窗口添加标题和图标

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

现象如下:

clipboard.png
3:给创建的窗口设置按钮及设置提示语

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

clipboard.png
4:设置标签(lable)信息

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

现象如下:

clipboard.png
5:配置输入框

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

现象如下:

clipboard.png
三:将上述方法总结一下实现了一个简单的功能,如下:
功能为:在输入框中输入值过后,点击按钮就会打印出你输入的值,关闭窗口会有提示

import sysfrom PyQt5 import QtWidgets,QtGui,QtCore,Qtclass 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_())

现象为:

clipboard.png

转载地址:http://yirma.baihongyu.com/

你可能感兴趣的文章
由于客观原因,暂时学习php两天,然后继续学习.net
查看>>
30个免费下载高质量精美照片素材的网站(转)
查看>>
初学Linux
查看>>
Oracle Essbase入门系列(三)
查看>>
处理任务队列的工作线程的创建
查看>>
迎接互联网的明天--玩转3D Web
查看>>
心态成就财富
查看>>
TeeChart 4.0.2009.62335 不过期的方法
查看>>
云安全 安全领域的最大热点之一
查看>>
微软面试题:正则表达式提取链接地址
查看>>
Java MD5 加密加强版
查看>>
当时遇到的主要难点在于TextView的内容不会刷新改变值,今天终于通过Timer和Handler实现了,分享给大家...
查看>>
CentOS卸载系统自带的OpenJDK并安装Sun的JDK的方法
查看>>
二路归并排序 代码实例
查看>>
【转】理解 pkg-config 工具
查看>>
【转】Android中intent传递对象和Bundle的用法
查看>>
TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
查看>>
什么是automatic variable?
查看>>
求数组的最长子数组之和的最大值
查看>>
Aptana Studio 介绍
查看>>