2013-06-12 39 views
0

我有一個創建主應用程序對話框一個Qt 4的基類:如何從Qt MainWindow類派生?

class MainWindow : public QMainWindow { 
    Q_OBJECT 
public: 
    explicit MainWindow(QWidget *parent = 0); 
}; 

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) 
{ 
    QWidget *central = new QWidget; 
    ... 
    setCentralWidget(central); 
} 

我不能碰這個代碼,但我可以用一個派生類擴展它:

class MyWindow : public MainWindow { 
    Q_OBJECT 
public: 
    explicit MyWindow(QWidget *parent = 0); 
}; 

MyWindow::MyWindow(QWidget *parent) 
{ 
    MainWindow(parent); 
    QWidget *myWidget = new QWidget; 
    //??? 
} 

我想將更多的小部件添加到基類的中央小部件。我該怎麼做一次setCentralWidget()已經在基類中調用過?

回答

2

您可以使用QMainWindow::centralWidget()訪問中央窗口小部件,並在其佈局中添加窗口小部件或佈局,並瞭解其結構。一個簡單的例子:

QMainWindow::centralWidget()->layout()->addWidget(new QLabel(tr("New label")));