QT中Widget画图问题 20
我使用的mainwindow的模板,在ui界面中加入了一个widget。我想在这个widget中画直线。我的做法是,在mainwindow.h写了重绘函数paintEve...
我使用的mainwindow的模板,在ui界面中加入了一个widget。
我想在这个widget中画直线。
我的做法是,在mainwindow.h写了重绘函数paintEvent,在对应的.c文件中重写了方法。但是,由于我不要在mainwindow画图,是在其中指定名字(假设名字叫WW)的widget中画图,我就将
QPainter painter(this) (可以画出直线) 改为
QPainter painter(this->ui->WW)
程序可以执行,但其后的画图语句没有画出,还有
QWidget::paintEngines:should no longer be called.这种错误
求解释,与解决办法 展开
我想在这个widget中画直线。
我的做法是,在mainwindow.h写了重绘函数paintEvent,在对应的.c文件中重写了方法。但是,由于我不要在mainwindow画图,是在其中指定名字(假设名字叫WW)的widget中画图,我就将
QPainter painter(this) (可以画出直线) 改为
QPainter painter(this->ui->WW)
程序可以执行,但其后的画图语句没有画出,还有
QWidget::paintEngines:should no longer be called.这种错误
求解释,与解决办法 展开
展开全部
1、可以直接在mainwindow中画
2、重写一个类,继承于widget,按照你的想法在widget.cpp中写重绘函数paintEvent代码
说不清你这么做为什么不行,貌似没见过这么玩的。
怀疑是不是你在画完之后,调的mainwindow::paintEvent(),你画的东西被覆盖了??
2、重写一个类,继承于widget,按照你的想法在widget.cpp中写重绘函数paintEvent代码
说不清你这么做为什么不行,貌似没见过这么玩的。
怀疑是不是你在画完之后,调的mainwindow::paintEvent(),你画的东西被覆盖了??
追问
一定要重写widget的类么?
mainwindow::paintEvent()不能通过指定画在其中的widget上么?
没有覆盖,我把this改成this->ui->WW就没有画出线条
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询