0

我有一个创建主应用程序对话框的 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()一旦在基类中被调用,我该怎么做?

4

1 回答 1

3

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

QMainWindow::centralWidget()->layout()->addWidget(new QLabel(tr("New label")));
于 2013-06-12T16:56:26.907 回答