我写了一个类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所做的一些工作没做,就没显示子字符串了。打个比方,就好比你构造一个派生类的对象,但是没有调用基类的构造函数。你的对象自然就不完整了