绘图QPainter-字体
在PyQt5中,一般可以通过Qpainter,QPen,QBrush这三个类来实现绘图功能,此外,QPixmap的作用是加载并呈现本地图像,而图像的本质上也是通过绘图方式实现的,所以QPixmap也可以被视为绘图的一个类
Qpainter类在QWidget(控件)上执性绘图操作,它是一个绘制工具,为大部分图形化界面提供了高度优化的函数,使QPainter类可以绘制从简单的直线到复杂的饼图等
绘制操作在QWidget.paintEvent()中完成,绘制方法必须放在QtGui.QPainter对象的begin()和end()之间。QPainter类在控件或其他绘图设备上执行较低级别的图像绘制功能,并通过如表的方法进行绘制
绘制字体--方式一:
import sys from PyQt5.QtGui import QPainter, QFont,QPen from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt class Demo(QWidget): def __init__(self): super(Demo, self).__init__() self.resize(600, 600) self.pen1 = QPen() #创建画笔 def paintEvent(self, QPaintEvent): #绘制事件 painter = QPainter(self) #创建画家 painter.setFont(QFont('Times New Roman', 30)) #给画家设置字体、大小 self.pen1.setColor(Qt.red) #设置画笔颜色--文字颜色 painter.setPen(self.pen1) #给画家设置画笔 #painter.setPen(Qt.red) #设置画家的画笔颜色 painter.drawText(100, 100, 'Hello PyQt5!') #绘制字体 #参数1 参数2 坐标 参数3 文字内容 if __name__ == '__main__': app = QApplication(sys.argv) demo = Demo() demo.show() sys.exit(app.exec_())
绘制字体--方式二:
import sys from PyQt5.QtWidgets import QWidget, QApplication from PyQt5.QtGui import QPainter, QColor, QFont class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 280, 170) self.setWindowTitle("绘画字体") def paintEvent(self, event): qp = QPainter() #创建画家 qp.begin(self) #画家开始绘画 #参数 【个人:把self做画布】 qp.setPen(QColor(168, 34, 3))#设置画家的画笔颜色 qp.setFont(QFont("黑体", 30))#设置画家的字体 #qp.drawText(event.rect(), Qt.AlignCenter, '塘沽五中') #绘制字体 #event.rect()得到当前窗体的可绘图区域 qp.drawText(100,100, '塘沽五中') #绘制字体 qp.end()#绘画结束 if __name__ == "__main__": app = QApplication(sys.argv) ex = Example() ex.show() sys.exit(app.exec_())
天子骄龙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)