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

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

一:安装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_())复制代码

现象如下

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_())复制代码

现象如下

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

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_())复制代码

现象如下:

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_())复制代码

现象如下:

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

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

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_())复制代码

现象为:

转载于:https://juejin.im/post/5c74f77df265da2dbe02efb4

你可能感兴趣的文章
UVA 11542 Square 高斯消元 异或方程组求解
查看>>
Nginx的内部(进程)模型
查看>>
基于设备树的controller学习(1)
查看>>
递归--练习1--noi3089爬楼梯
查看>>
慢慢过渡到个人博客
查看>>
深度学习 Deep Learning UFLDL 最新Tutorial 学习笔记 4:Debugging: Gradient Checking
查看>>
【转】spring boot web相关配置
查看>>
oc53--autorelease注意事项
查看>>
sigmod2017.org
查看>>
MongoDB集群运维笔记
查看>>
Python代码优化及技巧笔记(一)
查看>>
Caused by: java.lang.NoClassDefFoundError: org/apache/neethi/AssertionBuilderFactory
查看>>
Ocelot 集成Butterfly 实现分布式跟踪
查看>>
(转)各种语言写网络爬虫有什么优点缺点
查看>>
如何用公式编辑器打带圈加号
查看>>
好用的端口监控软件:Port Explorer
查看>>
php coding中的一些小问题
查看>>
Cisco无线控制器配置Radius
查看>>
iota 币产生私钥的方法
查看>>
Mysql数据类型DECIMAL(M,D)用法
查看>>