• 8058阅读
  • 8回复

[提问]Qt中在控件上绘图是否只能通过事件? [复制链接]

上一主题 下一主题
离线lixiaobo2272
 

只看楼主 倒序阅读 楼主  发表于: 2016-08-03


以前用MFC做的,现在要改成Qt。以前没接触过Qt,想问一下各位大神,Qt中在控件上绘图是否只能通过事件?比如,我想在一个Label上绘图,希望通过单击处理按钮完成处理和绘图,这种情况在Qt中应该怎么操作?
离线kimtaikee

只看该作者 1楼 发表于: 2016-08-03
QWidget 派系的只能在paintEvent中进行重绘;如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数;如果你想利用线程绘制的话,你可以创建个QPixmap或者QImage,然后在把图片当画布在线程中绘制。

离线6gongzi

只看该作者 2楼 发表于: 2016-08-04
把 图绘制在QPixmap上,Label只是展示你绘制的结果
点击按钮在后台绘图,绘制完成后通知Label显示结果
离线lixiaobo2272

只看该作者 3楼 发表于: 2016-08-04
回 kimtaikee 的帖子
kimtaikee:QWidget 派系的只能在paintEvent中进行重绘;如果你想要很好的交互功能的话推荐QGraphicsView框架,自定义Item的绘制在paint函数;如果你想利用线程绘制的话,你可以创建个QPixmap或者QImage,然后在把图片当画布在线程中绘制。 (2016-08-03 22:16) 

非常感谢您的解答。这个运算量很大,肯定要多线程操作。想问一下,使用QPixmap和QImage是可以直接绘制还是也需要进行事件?
离线lixiaobo2272

只看该作者 4楼 发表于: 2016-08-04
回 6gongzi 的帖子
6gongzi:把 图绘制在QPixmap上,Label只是展示你绘制的结果
点击按钮在后台绘图,绘制完成后通知Label显示结果
 (2016-08-04 08:31) 

好的,谢谢。我研究研究
离线stlcours

只看该作者 5楼 发表于: 2016-08-05
你都用MFC做出来了,怎么会问这种问题?是不是当时也是稀里糊涂做出来的?
系统真正绘图,当然只能是paintEvent,但这只是最后一步。在这之前你想怎么画就怎么画,把数据准备好就行了。
离线lixiaobo2272

只看该作者 6楼 发表于: 2016-08-07
回 stlcours 的帖子
stlcours:你都用MFC做出来了,怎么会问这种问题?是不是当时也是稀里糊涂做出来的?
系统真正绘图,当然只能是paintEvent,但这只是最后一步。在这之前你想怎么画就怎么画,把数据准备好就行了。 (2016-08-05 16:06) 

MFC可以在控件上直接绘图
离线stlcours

只看该作者 7楼 发表于: 2016-08-07
回 lixiaobo2272 的帖子
lixiaobo2272:MFC可以在控件上直接绘图 (2016-08-07 15:17) 

Qt也可以啊
离线yucr99

只看该作者 8楼 发表于: 2016-08-07
准备好QPixmap或QImage后,直接使用Label控件的setPixmap ( const QPixmap & )函数即可;
快速回复
限100 字节
 
上一个 下一个