当前位置: 代码迷 >> QT开发 >> 关于调用父类的paintEvent(event)的迷惑
  详细解决方案

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

热度:63   发布时间:2016-04-25 03:41:52.0
关于调用父类的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所做的一些工作没做,就没显示子字符串了。打个比方,就好比你构造一个派生类的对象,但是没有调用基类的构造函数。你的对象自然就不完整了
  相关解决方案