2011-03-05 10 views
0

我從QLabel類派生。我想重新定義一些事件(例如mousePressEvent和paintEvent)。但是在這種情況下,QLabel派生類(例如文本)的內容是不可見的。 SetEnabled和SetVisible沒有幫助。你能告訴我爲什麼客戶區域的標籤是不可見的嗎?(但對事件的反應是確定的)。qt4.7:無法看到QLabel派生類的文本

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

如果取消註釋事件defenition並創建對象並show()它們,則對象的客戶區域是不可見的。

回答

1

也許你需要從你的PaintRect構造函數調用QLabel構造函數?

或者您可能需要從PaintRect的paintEvent調用父級的paintEvent。

0

謝謝大家!我明白爲什麼標籤的客戶區域是隱形的。我重新定義了一個沒有代碼的paintEvent。有兩種方法:調用基類繪畫來繪製文本和oters,或者在重新定義的paintEvent中進行繪製。