回复: 请教大神这个该如何实现
#6 回 一只小鱼 的帖子 [笑颜 12-06 18:32]
一只小鱼:版主,我是这样做的,我在主窗口类中new一个widget,但是paintEvent(QPaintEvent *event)是在主窗口类中声明的,我绘制的话在主窗口上能显示,子窗口没有,我是这样写的
void ShowWidget::paintEvent(QPaintEvent *){
painter = new QPainter;
....... (2017-12-06 16:54)
QPainter 是需要传入你要绘制的设备的 而且一般不用new,因为需要释放。常用的方式:QPainter painter(this);
#7 回 一只小鱼 的帖子 [uidab 12-06 19:29]
一只小鱼:版主,我是这样做的,我在主窗口类中new一个widget,但是paintEvent(QPaintEvent *event)是在主窗口类中声明的,我绘制的话在主窗口上能显示,子窗口没有,我是这样写的
void ShowWidget::paintEvent(QPaintEvent *){
painter = new QPainter;
....... (2017-12-06 16:54)
自己继承啊 ???
#8 [一只小鱼 12-07 11:14]
看了下这位大神的博文,问题解决了,博文链接:http://blog.csdn.net/doctormacky/article/details/6109515,只是不太明白为什么要重写paintEvent函数,才能实现真正的继承呢
#9 回 一只小鱼 的帖子 [笑颜 12-07 11:28]
一只小鱼:看了下这位大神的博文,问题解决了,博文链接:http://blog.csdn.net/doctormacky/article/details/6109515,只是不太明白为什么要重写paintEvent函数,才能实现真正的继承呢 (2017-12-07 11:14)
什么是继承?
继承一般是为了拥有父类的属性,以及重新实现父类的虚函数,因为对于一些框架,他会调用父类指针的虚函数,这样如果你继承了,就能实现多态,调用到你自己实现的虚函数。
针对这个窗口绘制问题看来说,Qt是会去调用QWidget的paintEvent函数,实现窗口的绘制,如果你继承了QWidget,但是没有重写这个函数,Qt在调用paintEvent的时候,函数就是QWidget的实现,就是在窗口上什么也不画!当然不会有你想要的效果!
你是编程语言没学好!
#10 回 笑颜 的帖子 [一只小鱼 12-07 11:46]
笑颜:什么是继承?
继承一般是为了拥有父类的属性,以及重新实现父类的虚函数,因为对于一些框架,他会调用父类指针的虚函数,这样如果你继承了,就能实现多态,调用到你自己实现的虚函数。
针对这个窗口绘制问题看来说,Qt是会去调用QWidget的paintEvent函数,实现窗口的绘制,如果你 .. (2017-12-07 11:28)
嗯,我C++学的不好,真心感谢您!