2010-11-16 100 views
0

我在Qt中有兩個類。在一個我用QPainter聲明瞭一些變量和子QFrame類。現在,如果可能的話,我如何從子類中訪問父變量? 我知道我可以通過信號和插槽傳遞變量或者捕獲孩子QPainter事件,但我認爲這將是很好的直接訪問。從qt中的子類訪問父變量

回答

0

它歸結爲在基類的數據的可見性。如果數據是公開的或受保護的,那麼您可以訪問它。否則,數據是私人的,您無法直接訪問它。

0

不完全。簡單的例子:

頭母

class gameWindow : public QWidget 
{ 
    Q_OBJECT 

public: 
    gameWindow(QWidget *parent = 0); 
    int round; 

}; 

類父

#include "gamewindow.h" 

gameWindow::gameWindow(QWidget *parent) : 
    QWidget(parent) 
{ 
    round = 0; 
} 

頭的孩子:

class plArea:public QWidget 
{ 
    Q_OBJECT 
public: 
    plArea(QWidget *parent=0); 

}; 

類子:

#include "plarea.h" 

plArea::plArea(QWidget *parent):QWidget (parent) 
{ 
    parent->round = 1; 
} 

回報

「類QWidget的」沒有名爲 「圓」

+0

在這裏你做一件事不正確......你讓你傳遞給你的孩子班上「父」成員變量QWidget類型,如果你想讓它成爲gameWindow類型的話,它會知道是圓形的,並且沒有問題訪問它 – g19fanatic 2010-11-16 04:23:42

+0

你能告訴我它應該是什麼樣子嗎?我包括gamewindow.h到plArea頭,下一個I之前在管線plArea( '*' 標記做一些變化(http://pastebin.com/hTJ4qiKw) 和我得到errror預期 ')' gameWindow *父= 0); – sebastian 2010-11-16 10:48:24