QPainter【详细描述】

 

QPainter提供了高度优化的功能来完成大多数绘图GUI程序所需要的工作。它可以画出一切,从简单的线条到复杂的形状。还可以绘制文本和像素图。QPainter可以对继承了QPaintDevice 的类的任何对象进行操作。


QPainter的常见用法是在控件的“绘图事件”paintEvent()中构造QPainter对象,和定制笔刷或画笔,然后开始绘画,绘画完成后记得要销毁QPainter对象。

在paintEvent()外部构造QPainter对象,程序运行时报错:

QWidget::paintEngine: Should no longer be called

有时导致闪退。


QPainter的核心功能是绘图,允许用户自定义QPainter的设置及其渲染质量,还可以通过指定QPainter对象的合成模式来控制不同的形状如何层叠在一起。

isActive() 函数指示画家是否处于活动状态。
begin() 函数和接受QPaintDevice 的构造函数激活画家。
end() 函数和析构函数停用它。

QPainter与 QPaintDevice和 QPaintEngine 一起,构成了Qt绘图系统的基础。

QPainter是用于执行图形操作的类。

QPaintDevice表示可以使用QPainter进行绘制的设备。

QPaintEngine提供了QPainter用来绘制不同类型设备的接口。

如果painter处于活动状态,device() 返回正在用于绘画的设备, paintEngine() 返回当前正在运行的 painter 引擎。(参见Paint System
 


有时用户希望在特殊的QPaintDevice上作画,QPainter通过静态函数setRedirected() 来实现重定向。

警告:当绘画设备是一个控件时,只能在paintEvent() 函数内部或paintEvent() 调用的函数中使用QPainter。【跟前面说的一样,可以说是反复强调了】


 设置 

QPainter 有以下偏好设置:

font()

  • 用于绘制文本的字体。如果画家 isActive(),则可以分别使用fontInfo() 和 fontMetrics()函数检索有关当前设置的字体及其度量的信息。


brush() 

  • 定义了用于填充形状的颜色或图案。

pen() 

  • 定义了用于绘制线或边界的颜色或点画。


backgroundMode() 

PyQt是一个用于创建图形用户界面(GUI)应用程序的Python绑定库。它基于Qt框架,提供了丰富的GUI组件和功能,使开发者能够轻松地创建跨平台的应用程序。 PyQt的程序接口主要包括以下几个方面: 1. QWidget类:QWidget是PyQt中所有用户界面对象的基类,它提供了窗口的基本功能,如窗口标题、大小、位置等。通过继承QWidget类,可以创建自定义的窗口。 2. Layout布局管理器:PyQt提供了多种布局管理器,用于自动调整窗口中的控件位置和大小。常用的布局管理器有QVBoxLayout(垂直布局)、QHBoxLayout(水平布局)和QGridLayout(网格布局)等。 3. 控件(Widget):PyQt提供了丰富的控件,用于构建用户界面。常见的控件包括按钮(QPushButton)、标签(QLabel)、文本框(QLineEdit)、复选框(QCheckBox)、下拉列表(QComboBox)等。每个控件都有自己的属性和信号槽,可以通过设置属性和连接信号槽来实现交互功能。 4. 事件处理:PyQt使用事件驱动的方式处理用户交互。每个控件都可以接收和处理各种事件,如鼠标点击、键盘输入等。通过重写事件处理函数,可以实现对事件的响应和处理。 5. 信号与槽机制:PyQt使用信号与槽机制实现控件之间的通信。控件可以发出信号,其他控件可以连接到这些信号上,并在接收到信号时执行相应的槽函数。通过信号与槽的连接,可以实现控件之间的交互和数据传递。 6. 绘图和绘图设备:PyQt提供了绘图功能,可以在窗口中绘制各种图形、图像和文本。绘图设备包括QPainter(绘图工具)、QPen(画笔)和QBrush(画刷)等。 以上是PyQt程序接口的一些主要内容,通过使用这些接口,开发者可以创建出功能丰富、交互友好的GUI应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值