qt4.7:看不到QLabel派生类的文本

时间:2011-03-05 08:37:40

标签: qt4

我是从QLabel类派生的。我想重新定义一些事件(例如mousePressEvent和paintEvent)。但在这种情况下,QLabel派生类(例如文本)的内容是不可见的。 SetEnabled和SetVisible没有帮助。你能告诉我为什么标签的客户区域是不可见的吗?(但事件的反应是可以的)。

class PaintRect : public QLabel {
public:
    explicit PaintRect(QWidget *parent = 0);
/*
private:
    void paintEvent(QPaintEvent *ev);
    void mousePressEvent(QMouseEvent *ev);
*/
};

如果取消注释事件defenition并创建对象和show()它们,对象的客户区域是不可见的。

2 个答案:

答案 0 :(得分:1)

也许您需要从PaintRect构造函数中调用QLabel构造函数?

或者您可能需要从PaintRect的paintEvent中调用父级的paintEvent。

答案 1 :(得分:0)

谢谢大家!我明白为什么标签的客户区域是看不见的。我重新定义了一个没有代码的paintEvent。有两种方法:调用基类绘制来绘制文本和oters,或者在重新定义的paintEvent中执行。