绘图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_())

 

 

 

天子骄龙 

posted @ 2019-02-20 10:07  天子骄龙  阅读(5555)  评论(1编辑  收藏  举报