如何从Qt MainWindow类派生?

时间:2013-06-12 16:41:11

标签: qt derived-class qmainwindow

我有一个Qt 4基类,用于创建主应用程序对话框:

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(),我该怎么办呢?

1 个答案:

答案 0 :(得分:2)

您可以使用QMainWindow::centralWidget()访问中央窗口小部件,并在其布局中添加窗口小部件或布局,了解其结构。一个简单的例子:

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