赞
踩
目录
实战场景:Python 中 PyQt6 的绘制文本
文件读写
基础语法
PyQt6
sys
从绘制一些 Unicode 文本开始。
- import sys
- from PyQt6.QtWidgets import QWidget, QApplication
- from PyQt6.QtGui import QPainter, QColor, QFont
- from PyQt6.QtCore import Qt
-
-
- class Example(QWidget):
-
- def __init__(self):
- super().__init__()
-
- self.initUI()
-
-
- def initUI(self):
-
- self.text = "Лев Николаевич Толстой\nАнна Каренина"
-
- self.setGeometry(300, 300, 350, 300)
- self.setWindowTitle('Drawing text')
- self.show()
-
-
- def paintEvent(self, event):
-
- qp = QPainter()
- qp.begin(self)
- self.drawText(event, qp)
- qp.end()
-
-
- def drawText(self, event, qp):
-
- qp.setPen(QColor(168, 34, 3))
- qp.setFont(QFont('Decorative', 10))
- qp.drawText(event.rect(), Qt.Alignment.AlignCenter, self.text)
-
-
- def main():
-
- app = QApplication(sys.argv)
- ex = Example()
- sys.exit(app.exec())
-
-
- if __name__ == '__main__':
- main()
本例中,绘制了一些西里尔字母,并水平和垂直对齐了文本。
def paintEvent(self, event): ...
使用 paintEvent 完成绘画。
- qp = QPainter()
- qp.begin(self)
- self.drawText(event, qp)
- qp.end()
QPainter
类负责所有的底层绘制。所有的绘制都在开始和结束方法之间。实际的绘制被委托给 drawText 方法。
- qp.setPen(QColor(168, 34, 3))
- qp.setFont(QFont('Decorative', 10))
这里定义了绘制文本的笔触和字体。
qp.drawText(event.rect(), Qt.Alignment.AlignCenter, self.text)
drawText 方法在窗口上绘制文本。paintEvent 的rect方法返回需要更新的矩形。用 Qt.Alignment.AlignCenter
在两个维度上对齐文本。
菜鸟实战,持续学习!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。