qt 之 paintEvent(QPaintEvent *pe)

qt 如果你要绘制窗口,就可以直接实现该函数。  QPaintEvent 会包含要刷新的区域。 
void WindowVideoSingle::paintEvent( QPaintEvent* pe )
{
 QRect rc = this->rect();
 QPainter p( this );
 QPen pen( QColor::fromRgb(0,255,0));
 p.setPen( pen );
 
 rc.setLeft( rc.left() + 1 );
 rc.setTop( rc.top() + 1 );
 rc.setRight( rc.right() - 1 );
 rc.setBottom( rc.bottom() - 1 );

 p.drawRect( rc );
}
当你有子窗口的时候, 子窗口的刷新事件也会发送到这里。  pe->rect()是需要刷新的区域 。

`void CTitle::paintEvent(QPaintEvent *)` 是一个在 Qt 框架常见的成员函数,它通常用于处理 `CTitle` 类的对象(如窗口标题栏)当接收到 `paintEvent` 信号时的绘图操作。这个函数定义了一个重载的方法,当控件需要重新绘制其内容(例如,窗口大小改变或窗口可见性状态变化)时,会自动调用。 具体来说,当 `QPaintEvent` 发生时,Qt 会创建一个新的 `QPainter` 对象并将当前事件传递给 `paintEvent` 函数。在这个函数内部,开发人员可以执行以下操作: 1. 获取 `QPainter` 对象(通常是通过 `painter` 参数获取) ```cpp void paintEvent(QPaintEvent *event) { QPainter painter(this); } ``` 2. 设置绘画上下文(如果需要) ```cpp painter.setRenderHint(QPainter::Antialiasing); // 如果想要平滑边角 ``` 3. 绘制自定义内容(比如文字、图像或其他图形) ```cpp QString titleText = "HTML/CSS Quine"; painter.drawText(rect(), Qt::AlignCenter, titleText); ``` 4. 清理并结束绘画 ```cpp painter.end(); ``` 完整代码可能看起来像这样: ```cpp void CTitle::paintEvent(QPaintEvent *event) { QPainter painter(this); painter.setPen(Qt::black); QRect rect = boundingRect(); // 获取标题区域的矩形 QString titleText = "HTML/CSS Quine"; painter.drawText(rect, Qt::AlignCenter, titleText); painter.end(); } ``` 请注意,这只是一个基础的示例,实际实现可能会更复杂,取决于具体的UI设计和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值