目次
1.実際の戦闘シーン
実際のシナリオ: Python で PyQt6 にテキストを描画する
2. 主な知識
三、新人戦
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
このクラスは、下にあるすべての描画を担当します。すべての描画は start メソッドと end メソッドの間にあります。実際の描画は 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
テキストを 2 次元で整列するために使用 します。
ルーキーコンバット、学び続けろ!