zoukankan      html  css  js  c++  java
  • 绘图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_())

     

    天子骄龙 

  • 相关阅读:
    两道关于算法的面试题
    MySQL连接数过多程序报错"too many connections"
    Mysql中类似于Oracle中connect by ... start with的查询语句(木大看懂)
    获取当前div中的文本(只获取当前div的, 子元素不要, 基于layui)
    同一张地区表中根据汉字查询地区的代码
    HttpURLConnection getInputStream异常的解决
    IDEA报错No Spring WebApplicationInitializer types detected on classpath
    mybatis出现无效的列类型
    hibernate NUMBER 精度
    jmeter汉化或英化
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10404917.html
Copyright © 2011-2022 走看看