(一)PyQt5基础学习

本文介绍了PyQt5的基础学习,包括安装、主要模块介绍及源码示例,如显示窗体、图标、提示语、关闭窗口、消息框、窗口居中等。详细教程链接已给出。
摘要由CSDN通过智能技术生成

由于最近的需要,需要了解基于python的图形界面相关内容,所以我需要非常认真地学习一下PyQt5,什么也不懂,所以我选择在网上找一个基础教程。希望可以尽快的学习,那么我将记录一下我的学习过程。

链接:http://code.py40.com/1948.html

 

链接:http://code.py40.com/pyqt5/16.html

官方网站:http://zetcode.com/gui/pyqt5/

链接:http://www.riverbankcomputing.co.uk/news

学习链接:https://blog.csdn.net/xiaosongshine/article/details/93725693

学习链接:https://blog.csdn.net/azuremouse/article/details/90338961


首先,安装一下PyQt5。

参考链接:https://blog.csdn.net/qq_41377419/article/details/82379818

参考链接:https://blog.csdn.net/yl_best/article/details/83749861

python已经安装过了,所以我只需要在电脑上安装一下PyQt5即可。

环境:win10+python3.8.3+PyQt5

pip install PyQt5

 

 安装完成后,可以查看一下


一、PyQt5包含模块

QtCore:包含了核心的非GUI功能。此模块用于处理时间、文件和目录、各种数据类型、流、URL、MIME类型、线程或进程;

QtGui:包含类窗口系统集成、事件处理、二维图形、基本成像、字体和文本;

QtWidgets:模块包含创造经典桌面风格的用户界面提供了一套UI元素的类;

QtMultimedia:包含的类来处理多媒体内容和API来访问相机和收音机的功能;

QtBluetooth:模块包含类的扫描设备和连接并与他们互动。描述模块包含了网络编程的类。这些类便于TCP和IP和UDP客户端和服务器的编码,使网络编程更容易和更便携;

QtNetwork

Qtpositioning:包含类的利用各种可能的来源,确定位置,包括卫星、Wi-Fi、或一个文本文件;

Enginio:模块实现了客户端库访问Qt云服务托管的应用程序运行时;

Qtwebsockets:模块包含实现WebSocket协议类;

QtWebKit:包含一个基于Webkit2图书馆Web浏览器实现类;

Qtwebkitwidgets:包含的类的基础webkit1一用于qtwidgets应用Web浏览器的实现;

QtXml:包含与XML文件的类,这个模块为SAX和DOM API提供了实现;

QtSvg:模块提供了显示SVG文件内容的类,可伸缩矢量图形(SVG)是一种描述二维图形和图形应用的语言;

QtSql:模块提供操作数据库的类;

QtTest:包含的功能,使pyqt5应用程序的单元测试。

 二、源码示例

2.1 显示窗体

import sys
 
from PyQt5.QtWidgets import QApplication, QWidget
 
 
if __name__ == '__main__':
    #每一pyqt5应用程序必须创建一个应用程序对象。sys.argv参数是一个列表,从命令行输入参数。
    app = QApplication(sys.argv)
    #QWidget部件是pyqt5所有用户界面对象的基类
    #为QWidget提供默认构造函数。默认构造函数没有父类。
    w = QWidget()
    #resize()方法调整窗口的大小。这离是250px宽150px高
    w.resize(250, 150)
    #move()方法移动窗口在屏幕上的位置到x = 300,y = 300坐标。
    w.move(300, 300)
    #设置窗口的标题
    w.setWindowTitle('Simple')
    #显示在屏幕上
    w.show()
    
    #系统exit()方法确保应用程序干净的退出
    #的exec_()方法有下划线。因为执行是一个Python关键词。因此,exec_()代替
    sys.exit(app.exec_())

这个时候的效果是可以出现一个窗体

 2.2 显示图标

一般作为一个程序来讲,都是有自己的图标的。而给python的窗体加上一个图标也是必要的,这个也是PyQt5的简单的基础功能。

###显示应用图标
import sys 
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon

class Example(QWidget):
	def __init__(self):
		super().__init__()
		#界面绘制交给InitUI方法
		self.initUI()

	def initUI(self):
		#设置窗体的位置和大小
		self.setGeometry(300,300,300,300)
		self.setWindowTitle("测试")
		#设置图标
		self.setWindowIcon(QIcon('E:/Python/dist/main.ico'))

		#显示窗体
		self.show()

if __name__=='__main__':
	app=QApplication(sys.argv)
	ex = Example()
	sys.exit(app.exec_())

2.3 显示提示语

#显示提示语
import sys
from PyQt5.QtWidgets import (QWidget,QToolTip,QPushButton,QApplication)
from PyQt5.QtGui import QFont

class Example(QWidget):
	def __init__(self):
		super().__init__()
		self.initUI()

	def initUI(self):
		#静态的方法设置一个用于显示工具提示的字体
		#10px代表字符的像素大小
		QToolTip.setFont(QFont('SansSerif',10))

		#创建提示,称之为settooltip()方法,我们可以使用丰富的文本格式
		self.setToolTip("这是一个提示")

		#创建挨近一个按钮,并为它设置一个tooltip
		btn = QPushButton('Button',self)
		btn.setToolTip('这是一个按钮')

		#设置默认尺寸
		btn.resize(btn.sizeHint())

		#设置移动窗口的位置
		btn.move(100,50)

		self.setGeometry(300,500,500,300)
		self.setWindowTitle('来吧测试')

		#显示
		self.show()

if __name__=='__main__':
	app = QApplication(sys.argv)
	ex = Example()
	sys.exit(app.exec_())

2.4 关闭窗口

 通过点击窗口中的一个退出按钮,然后整个窗口关闭。

#关闭窗口
import sys
from PyQt5.QtWidgets import QWidget,QPushButton,QApplication
from PyQt5.QtCore import QCoreApplication

class Example(QWidget):
	def __init__(self):
		super().__init__()
		self.initUI()

	def initUI(self):
		qbtn = QPushButton('Quit',self)
		qbtn.clicked.connect(QCoreApplication.instance().quit)
		qbtn.resize(qbtn.sizeHint())
		qbtn.move(50,50)

		self.setGeometry(300,300,300,300)
		self.setWindowTitle('退出')
		#窗口显示
		self.show()

if __name__=='__main__':
	app = QApplication(sys.argv)
	ex = Example()
	sys.exit(app.exec_())

 2.5 消息框

在关闭按钮,我们需要弹出一个消息框,然后提示是否确定要关闭当前窗口,这是很多软件都会提示的。

import sys
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
 
 
class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        self.setGeometry(300, 300, 250, 150)        
        self.setWindowTitle('Message box')    
        self.show()
        
        
    def closeEvent(self, event):
        
        reply = QMessageBox.question(self, 'Message',
            "确定要关闭么?", QMessageBox.Yes | 
            QMessageBox.No, QMessageBox.No)
 
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()        
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

     

 2.6 窗口显示在屏幕的中间

import sys
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication
 
 
class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):               
        
        self.resize(250, 150)
        self.center()
        
        self.setWindowTitle('Center')    
        self.show()
        
    
    #控制窗口显示在屏幕中心的方法    
    def center(self):
        
        #获得窗口
        qr = self.frameGeometry()
        #获得屏幕中心点
        cp = QDesktopWidget().availableGeometry().center()
        #显示到屏幕中心
        qr.moveCenter(cp)
        self.move(qr.topLeft())
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())  

2.7 整合示例

#整合示例
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import (QWidget,QToolTip,QPushButton,QApplication)
from PyQt5.QtGui import QFont
from PyQt5.QtCore import QCoreApplication
from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication
from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication
 
 
class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        self.initUI()
        
        
    def initUI(self):               
        
        #窗体大小
        self.resize(1000,500)
        #居中
        self.center()
        
        #设置标题
        self.setWindowTitle('整合示例')
        #设置图标
        self.setWindowIcon(QIcon('E:/Python/dist/main.ico'))

        #创建tooltip
        QToolTip.setFont(QFont('SansSerif',20))
        self.setToolTip('提示')
        btn = QPushButton('Button',self)
        btn.setToolTip("这是一个按钮的提示")
        #btn.resize(btn.sizeHint)
        btn.move(100,100)

        #关闭窗口的提示
        qbtn = QPushButton('Quit',self)
        qbtn.clicked.connect(QCoreApplication.instance().quit)
        #qbtn.resize(qbtn.sizeHint)
        qbtn.move(100,100)

        self.show()
        
    
    #控制窗口显示在屏幕中心的方法    
    def center(self):
        
        #获得窗口
        qr = self.frameGeometry()
        #获得屏幕中心点
        cp = QDesktopWidget().availableGeometry().center()
        #显示到屏幕中心
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    #消息框
    def closeEvent(self, event):
        
        reply = QMessageBox.question(self, 'Message',
            "确定要关闭么?", QMessageBox.Yes | 
            QMessageBox.No, QMessageBox.No)
 
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蹦跶的小羊羔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值