绘图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_())
天子骄龙
绘图QPainter-字体的更多相关文章
- R绘图字体解决方案(转)
COS论坛里面经常会遇到的一个问题就是绘图时中文字体怎么解决.最初,一个流行的方法是使用family = "GB1",但一般这样做出来的图比较难看,而且并没有完全解决问题.后来发现 ...
- 2048游戏_QT实现
#ifndef GAMEWIDGET_H #define GAMEWIDGET_H #include <QWidget> #include <QMouseEvent> #inc ...
- 每日一笔记之2:QT之坐标系统:
以前一直多单片机开发,也没怎么使用过大的显示器,第一次学习,备忘: QT画图系统. 绘图,通过QPainter类实现. Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同 ...
- 【转帖】C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
1 DLLImport的使用 using System; using System.Runtime.InteropServices; //命名空间 class Example { //用Dl ...
- 纯js实现html转pdf
项目开发中遇到了一个变态需求,需要把一整个页面导出为pdf格式,而且要保留页面上的所有的表格.svg图片和样式.简而言之,就是希望像截图一样,把整个页面截下来,然后保存成pdf.咋不上天呢--查了一下 ...
- QT 实现在QLabel上画图
QT之所以不能再任意控件上绘图是因为QT的事件过滤器把控件的绘图事件给过滤了. 在paintevent()函数中,通常需要设置QPainter对象,创建QPainter对象的同时需要指定绘图设备,即继 ...
- Linux Graphic DRI Wayland 显示子系统
转:https://blog.csdn.net/u013165704/article/details/80709547 1. 前言 上篇文章(Linux graphic subsytem(1)_概述) ...
- 使用JFreeChart生成报表
1.JFreeChart简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications,servlets以及JSP等使用所设计. ...
- Java报表之JFreeChart
一.JFreeChart简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications,servlets以及JSP等使用所设计. JFre ...
- JS导出页面为PDF文件,该如何操作?来看一眼就明白啦!
1.资源文件或依赖 <script type="text/javascript" src="./js/canvg2.js"></script& ...
随机推荐
- Nginx CONTENT阶段 static模块
L63-65 alias指令 syntax: alias path;# 静态文件路径 alias不会将请求路径后的路径添加到 path中 context : location; root指令 sy ...
- Codeforces ECR47F Dominant Indices(线段树合并)
一个比较显然的做法:对每棵子树用线段树维护其中的深度,线段树合并即可. 本来想用这个题学一下dsu on tree,结果还是弃疗了. #include<iostream> #include ...
- Hibernate的继承映射
对象模型示例: 继承映射的实现方式有以下三种: (一)每棵类继承树一张表 (二)每个类一张表 (三)每个子类一张表 (一)每棵类继承树一张表 关系模型如下: 映射文件如下: <hibernate ...
- 【BZOJ3551】【BZOJ3545】 【ONTAK2010】 Peaks (kruskal重构树+主席树)
Description 在\(Bytemountains\)有\(~n~\)座山峰,每座山峰有他的高度\(~h_i~\). 有些山峰之间有双向道路相连,共\(~m~\)条路径,每条路径有一个困难值 ...
- Leetcode 26.删除排序数组中的重复项 By Python
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...
- JNative 传递参数bug
下载JNative网址:http://sourceforge.net/projects/jnative/files/jnative/ 下载JNative版本:JNative_1.4RC3_bin.zi ...
- Jenkins中配置邮件通知实例演示
前言:本文通过安装配置Jenkins实现邮件通知,告知一个C# Git Repo的build成功与否 一.预配条件 在windows上安装Jenkins和它推荐安装的Plugins 创建一个@163. ...
- sqlite 日期型 字符串转为日期型
因为sqlite为弱引用,使用字段前将他强制转为日期型,用datetime.或者最原始的 strftime. SELECT distinct ID from testTable where datet ...
- centos6.5安装VNC、远程及启动关闭
标签: centos vnc 远程桌面 安装 详解 0.说明 安装服务的过程当中,最好是在联网环境下操作.由于涉及到远程连接的问题,系统的防火墙需要关闭,或者是做好相应的过滤策略.参考了网上很多大牛的 ...
- Ubuntu/Unity中更改窗口修饰键Alt为Super
在Ubuntu中的Unity桌面环境里,可以使用Alt配合鼠标左键拖动窗口,这一方便的设定有许多不方便的地方.和很多的软件有热键上的冲突,比如Visual Stdio Code的多光标控制功能. 注意 ...