以下是一个示例,展示如何在 CurrRunProgram
中创建一个自适应大小的 QTabWidget
,并在每个选项卡中添加一个文本框和按钮:
#include <QtWidgets>
class CurrRunProgram : public QWidget {
Q_OBJECT
public:
explicit CurrRunProgram(QWidget *parent = nullptr);
private:
QTabWidget *tabWidget;
};
CurrRunProgram::CurrRunProgram(QWidget *parent) :
QWidget(parent)
{
QVBoxLayout *layout = new QVBoxLayout(this);
tabWidget = new QTabWidget(this);
layout->addWidget(tabWidget);
// 添加选项卡
for (int i = 0; i < 5; ++i) {
QWidget *tab = new QWidget();
QHBoxLayout *tabLayout = new QHBoxLayout(tab);
QLineEdit *lineEdit = new QLineEdit(tab); // 文本框
QPushButton *button = new QPushButton("Button", tab); // 按钮
tabLayout->addWidget(lineEdit);
tabLayout->addWidget(button);
tab->setLayout(tabLayout);
QString tabTitle = "Tab " + QString::number(i + 1);
tabWidget->addTab(tab, tabTitle);
}
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
CurrRunProgram window;
window.show();
return app.exec();
}
这个例子使用了垂直布局 (QVBoxLayout
) 来容纳 QTabWidget
,然后在每个选项卡中使用水平布局 (QHBoxLayout
) 来排列文本框 (QLineEdit
) 和按钮 (QPushButton
)。通过调用 setLayout()
方法将布局应用到选项卡上。
在这个示例中,我添加了5个选项卡,你可以根据需要进行调整。每个选项卡都会自动适应父窗口的大小,并且其中的文本框和按钮也会随着窗口的大小变化而调整位置。
内容由零声教学AI助手提供,问题来源于学员提问