如果你一定要使用 QWidget
而不是 QMainWindow
,那么你可以直接将 QWidget
设置为主窗口的内容,而不需要调用 setCentralWidget
。在这种情况下,可以使用 setLayout()
方法来设置布局,并直接添加子部件。
示例代码
下面是一个简单的示例,展示了如何在继承自 QWidget
的类中设置布局和部件:
#include <QWidget>
#include <QVBoxLayout>
#include < QPushButton>
class ViewProgress : public QWidget {
Q_OBJECT
public:
explicit ViewProgress(QWidget *parent = nullptr) : QWidget(parent) {
// 创建一个垂直布局
QVBoxLayout *layout = new QVBoxLayout(this);
// 创建并添加子部件
QPushButton *button1 = new QPushButton("Button 1", this);
layout->addWidget(button1);
QPushButton *button2 = new QPushButton("Button 2", this);
layout->addWidget(button2);
// 将布局应用到当前的 QWidget
setLayout(layout);
}
};
注意事项
- 在这个示例中,我们创建了一个新的
QVBoxLayout
,并将其设置为当前QWidget
的布局。 - 然后,通过调用
addWidget()
方法将按钮等子部件添加到布局中。
如果你确实需要更多复杂的结构(例如菜单栏、工具栏等),那么使用 QMainWindow
会更合适。如果只是需要简单的界面,那么使用 QWidget 和合适的布局就足够了。
内容由零声教学AI助手提供,问题来源于学员提问