qt中如何画图,使用QPainter,提示QPainter is not active

nikshuang7 nikshuang7 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
如题,我只需要在窗体的一个指定区域内刷为黑色,我在程序中调用QPainter,提示QPainter is not active,难道QPainter只能在PaintEvent中才能调用吗。代码如下,请高手帮忙指点,我要的效果只是刷为黑色,用其他方法也行:
void MainWindow::initLogo()
{
/* brush a black background */
QPainter paint(this);
paint.setPen(QPen(Qt::black));
paint.setBrush(QBrush(Qt::black, Qt::SolidPattern));
paint.drawRect(10, 20, this->width() - 20, this->height() - 30);

.......
}
...全文

相关推荐

QPainter错误解决方案[项目代码]

文章详细解释了在使用QPainter绘制图形时遇到的错误“QPainter::setPen: Painter not active”的解决方案。作者指出,根据Qt API的警告信息,QPainter只能在QWidget的paintEvent()函数或其调用的函数中使用。文章提供了官方示例代码,并建议通过调用QWidget::update()函数来手动触发paintEvent事件,从而正确使用QPainter进行绘图操作。

fox11

qt qprinter的类做了简要翻译

对qt的printer进行了简要的翻译,用于文件的打印操作,还是很实用的

-西门吹雪

QStyle定制弹出菜单

用QStyle自定义实现的弹出菜单,菜单背景透明;菜单上的文字及鼠标滑过时的图案不透明。

wangzai6378

Qt子控件绘制实战:QPainter三种实现方式及避坑指南

在GUI开发中,自定义绘制是控件二次开发的核心能力。Qt框架提供的QPainter绘图引擎,通过paintEvent事件机制将图形渲染到指定设备上。然而,直接在子控件上绘制常面临生命周期与绘制目标错位的问题。本文结合工程实践,系统梳理了在QWidget等子控件上绘制的三种主流思路:子类化重写paintEvent、事件过滤器拦截以及QPixmap离屏渲染。并深入分析各自适用场景、性能差异与常见陷阱,如更新机制、背景透明、坐标系变换等。这些技术广泛应用于波形显示、仪表盘、标注框选等交互界面,是Qt自定义控件进阶

珍喜欢点灯啊

QT报错:QBackingStore::endPaint() called with active painter

【代码】QT报错:QBackingStore::endPaint() called with active painter。

@十三阿哥
评论 1
收藏 已收藏
分享
返回顶部
nikshuang7
C++ 语言 65,214 成员 250,514 内容