QT c++ 使用循环创建若干个按钮,将他们放在一个4个*2行 窗口大小为710*650 按钮列表大小为2480*650 设置按钮列表滚动条隐藏,左右可循环切换
时间: 2024-09-12 10:09:55 浏览: 47
在Qt C++中,你可以使用`QGridLayout`或者` QVBoxLayout`来布局控件,如按钮,构建一个4列2行的窗口。首先,你需要包含必要的库头文件,并创建一个窗口、按钮数组和相关的布局管理器。
```cpp
#include <QApplication>
#include <QWidget>
#include <QPushButton>
#include <QGridLayout>
#include <QScrollArea>
#include <QScrollBar>
class MyWindow : public QWidget {
public:
MyWindow(QWidget *parent = nullptr) : QWidget(parent) {
// 创建一个4列2行的网格布局
QGridLayout *gridLayout = new QGridLayout(this);
gridLayout->setContentsMargins(0, 0, 0, 0); // 隐藏边距
// 定义按钮大小
QSize buttonSize(QSize(248, 65)); // 假设按钮宽高为248像素和65像素
int row = 0;
for (int col = 0; col < 4; ++col) {
for (int i = 0; i < 2; ++i) {
QPushButton *button = new QPushButton("Button " + QString::number(i+1), this);
button->setFixedSize(buttonSize);
// 将按钮添加到布局
gridLayout->addWidget(button, row, col);
if (row == 1 && col == 0) { // 第一行第一列设置为滚动区域
QScrollArea *scrollArea = new QScrollArea(this);
scrollArea->setWidgetResizable(true);
scrollArea->setWidget(button);
scrollArea->horizontalScrollBar()->setVisible(false); // 隐藏水平滚动条
gridLayout->addWidget(scrollArea, row, col);
break; // 结束外层循环并跳出内层循环
}
row++;
if (row >= 2) { // 如果超出两行则开始新的一行
row = 0;
}
}
}
setLayout(gridLayout);
setMinimumSize(710, 650); // 设置窗口尺寸
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWindow window;
window.show();
return app.exec();
}
```
阅读全文