请教怎么在tabwidget的一个tab页面上用QPainter画图

 我来答
jained
2015-12-29 · TA获得超过5115个赞
知道大有可为答主
回答量:2909
采纳率:80%
帮助的人:954万
展开全部
自定义一个widget,重写paintEvent ( QPaintEvent * event ) 画你想画的图形,然后调用 QTabWidget::setCornerWidget
+1
自己自定义一个widget作为QTabWidget的一个页面。
怎么自定义一个widget,要创建一个类吗,具体怎么操作啊,谢谢!
自己定义一个类去继承QWidget,重写这个类的paintEvent
那怎么放到tabwidget里面呢,用insertTab(int index,QWidget *widget,const QString &)吗。那么这个函数中的QWidget *widget怎么定义。
这样的话,我把图都画在了自定义的类里面,那么我怎么调用这个类不停的画图呢。
你要在你调用的地方构造:
MyWidget widget = new MyWidget(this);
然后在通过insertTab去添加这个widget。
paintEvent事件是在MyWidget重写的,你只要在widget的区域就可以不停的画图了。
[解决办法]
Qt的绘图比较特别,也是类似MVC方式(MFC是直接绘图,也可类似MVC),数据和视图分开,paintEvent里只要写绘图代码。其它的地方处理数据,更新完了数据,直接update就会重绘。

我这有个简单的例子:http://download.csdn.net/detail/jdwx1/4108947,0分下载。
谢谢,这个应该是只能在切换到当前的tab时执行一次画图,那么我要是实时更新,不停的画图呢。
我按照你的写法修改了之后,运行没有错误,但是界面一直出不来。当我在构造函数里把ui->topologyTab->installEventFilter(this);注释掉了就好了。本文来自:读书人网(http://www.reader8.cn/)原文链接:
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式