首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于调用父类的paintEvent(event)的迷惑

2013-09-06 
关于调用父类的paintEvent(event)的疑惑我写了一个类label,继承QLabel。我在label的构造函数中加入label的

关于调用父类的paintEvent(event)的疑惑
我写了一个类label,继承QLabel。
我在label的构造函数中加入label的字符串
 QPalette palette;
 palette.setColor(QPalette::WindowText,QColor(50,255,255));
 this->setText(str);
 this->setPalette(palette);

如果我在label中不写paintEvent(QPaintEvent *event)函数,字符串能显示

如果我重写了paintEvent(QPaintEvent *event)函数,就不能显示字符串。如果我在paintEvent函数最后加入一句 :QLabel::paintEvent(event);才能显示字符串在label上。

为什么要调用父类的paintEvent函数呀,有什么作用啊?

[解决办法]
父类的paintEvent函数实现了一些基本的绘制,显示啊。如果你不重写父类的paintEvent的时候,就默认调用父类的paintEvent,所有能显示字符串。如果你重写了父类paintEvent,但是没有调用基类的paintEvent,你的label肯定只实现了你写的代码的功能, 基本paintEvent所做的一些工作没做,就没显示子字符串了。打个比方,就好比你构造一个派生类的对象,但是没有调用基类的构造函数。你的对象自然就不完整了

热点排行