我有一个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()
,我该怎么办呢?
答案 0 :(得分:2)
您可以使用QMainWindow::centralWidget()访问中央窗口小部件,并在其布局中添加窗口小部件或布局,了解其结构。一个简单的例子:
QMainWindow::centralWidget()->layout()->addWidget(new QLabel(tr("New label")));