【QTdesigner】课时49.在窗口上绘制文字(QPainter)(painter.drawText)(paintEvent())【pyqt5+QTdesigner模式】

课程目录

  • 视频链接
  • 课程重点
  • 代码位置
  • 完整代码
  • 遇到的问题
  • 改写效果展示
  • 改写注意点
  • 改写代码(QTdesigner模式)

>>> 点击进入:pyqt5专栏<<<

老师原课件下载地址:
有积分的朋友,支持下我,打赏也OK。
不下载也可以,我每节课会吧代码贴出来


视频链接

P48课时49.在窗口上绘制直线


课程重点

【QTdesigner】课时49.在窗口上绘制文字(QPainter)(painter.drawText)(paintEvent())【pyqt5+QTdesigner模式】_第1张图片

参考博客:
PyQt5基本控件详解之QPainter(十七)

画图必须使用这个内置的方法 paintEvent(),即使内部没调用这个函数,也会自动运行。
在这里插入图片描述
输入以后会自动要求选择
【QTdesigner】课时49.在窗口上绘制文字(QPainter)(painter.drawText)(paintEvent())【pyqt5+QTdesigner模式】_第2张图片


代码位置

【QTdesigner】课时49.在窗口上绘制文字(QPainter)(painter.drawText)(paintEvent())【pyqt5+QTdesigner模式】_第3张图片


完整代码

'''

绘图API:绘制文本

1. 文本
2. 各种图形(直线,点,椭圆,弧,扇形,多边形等)
3. 图像

QPainter

painter = QPainter()

painter.begin()

painter.drawText(...)

painter.end()


必须在paintEvent事件方法中绘制各种元素


'''

import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtGui import QPainter,QColor,QFont
from PyQt5.QtCore import Qt

class DrawText(QWidget):
    def __init__(self):
        super(DrawText,self).__init__()
        self.setWindowTitle('在窗口上绘制文本')
        self.resize(300,200)
        self.text = "Python从菜鸟到高手"
    def paintEvent(self, event):   # 
        painter = QPainter(self)
        painter.begin(self)
        painter.setPen(QColor(150,43,5))  # 设置笔的颜色
        painter.setFont(QFont('SimSun',25))  # 设置字体和大小

        painter.drawText(event.rect(),Qt.AlignCenter,self.text)
        painter.end()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = DrawText()
    main.show()
    sys.exit(app.exec_())


遇到的问题


改写效果展示

完全没有改造的必要了


改写注意点

参考博客:
PyQt5基本控件详解之QPainter(十七)


改写代码(QTdesigner模式)

你可能感兴趣的:(pyqt5)