Qt画图问题

haltwang 2012-05-25 12:56:38
今天用了一个小程序测试了一个问题
主窗口mainwindow个它的子窗口widget中分别重写paintEvent
mainwindow里
QPainter painter(this);
qDebug()<<"main:"<<painter.paintEgine->paintDevice;
widget里:
QPainter painter(this);
qDebug()<<"widget:"<<painter.paintEgine->paintDevice;

结果输出的QPiantDevice竟然是一样的,也就是说他们是在同一块东西上画,那为什么在这个里面画的东西不会跑到另一个里面去呢?
...全文
144 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haltwang 2012-05-25
  • 打赏
  • 举报
回复
输出结果如下:
main: 0x19265b8
widget: 0x19265b8
xiebin133 2012-05-25
  • 打赏
  • 举报
回复
假如你重载了一个label,你就在label的 paintEvent里面绘制就可以了,至于不用paintEvent绘制,我也没绘制过,期待给出方法测试下。。
haltwang 2012-05-25
  • 打赏
  • 举报
回复
理解一点点了,能不能举个例子,不用QPaintEngine自己实现一套显示机制。
例如我想单独对其中一个子窗口的内容进行绘制。
[Quote=引用 2 楼 的回复:]
你误会了QPiantDevice的意思,并不是指的具体某个窗体,你一个工程里全部的元素都是通过一个paintEgine的paintDevice画出来的。Qt的绘图方式可以自选,也可以不用QPaintEngine自己实现一套显示机制,但是就不能直接用painterEvent了。
[/Quote]
如此美丽的你 2012-05-25
  • 打赏
  • 举报
回复
ls说的有道理啊!
念茜 2012-05-25
  • 打赏
  • 举报
回复
你误会了QPiantDevice的意思,并不是指的具体某个窗体,你一个工程里全部的元素都是通过一个paintEgine的paintDevice画出来的。Qt的绘图方式可以自选,也可以不用QPaintEngine自己实现一套显示机制,但是就不能直接用painterEvent了。

16,225

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧