2012-05-17 22 views
2

不知道我是否正確地問這個問題,因爲我是新來的C + +和Qt。但是,說我有QWidget的子類:在QWidget的子類上使用setCentralWidget?

class childofqwidget : public QWidget 

我可以將指針傳遞給子類的對象QMainWindow中的setCentralWidget成員函數?這樣的事情:

mainlayout = new childofqwidget; 
setCentralWidget(mainlayout); 

我問的原因是因爲我做了一個QWidget的子類,它有一個文本框和一些按鈕的佈局。我想插入它作爲QMainWindow對象的中心部件。這可能嗎?如果不是有更好的方法,我應該這樣做嗎?

+2

你應該得到與每一個新單詞大寫字母命名的類名的習慣。 'childofwidget'應該被命名爲'ChildOfWidget'。變量和方法名應該以每個新單詞的小寫字母和大寫字母開頭:'mainlayout'應該命名爲'mainLayout'。 (這是Qt的命名約定。) – leemes

回答

5

是的,這很好,這是通常的做法。

(呼叫變量layout當它是一個widget有點不尋常/混亂,雖然,但是這只是命名。)

+0

好酷。我試着這樣做,它不會編譯...編譯器告訴我,setCentralWidget只接受類型(* QWidget)的參數。我可能正在執行一些不正確的事情。讓我重試... – Justin

+0

只要'mainlayout'聲明爲'childofqwidget * mainlayout',你的代碼段就可以工作。 – Mat

+0

太棒了。得到它的工作;之前的錯誤是由於我的錯誤實現。謝謝。 – Justin