现在有12个QLabel ,希望他们两两组合,组合成两行三列 使用Qt的布局方式 是其能协调实现
时间: 2024-03-08 18:48:05 浏览: 22
是的,可以使用 `QGridLayout` 布局方式来实现这个需求。下面是示例代码:
```cpp
// 创建 12 个 QLabel
QLabel* label1 = new QLabel("Label 1");
QLabel* label2 = new QLabel("Label 2");
QLabel* label3 = new QLabel("Label 3");
QLabel* label4 = new QLabel("Label 4");
QLabel* label5 = new QLabel("Label 5");
QLabel* label6 = new QLabel("Label 6");
QLabel* label7 = new QLabel("Label 7");
QLabel* label8 = new QLabel("Label 8");
QLabel* label9 = new QLabel("Label 9");
QLabel* label10 = new QLabel("Label 10");
QLabel* label11 = new QLabel("Label 11");
QLabel* label12 = new QLabel("Label 12");
// 创建 QGridLayout
QGridLayout* gridLayout = new QGridLayout();
// 将 12 个 QLabel 添加到 QGridLayout 中
gridLayout->addWidget(label1, 0, 0); // 第一行第一列
gridLayout->addWidget(label2, 0, 1); // 第一行第二列
gridLayout->addWidget(label3, 0, 2); // 第一行第三列
gridLayout->addWidget(label4, 1, 0); // 第二行第一列
gridLayout->addWidget(label5, 1, 1); // 第二行第二列
gridLayout->addWidget(label6, 1, 2); // 第二行第三列
gridLayout->addWidget(label7, 2, 0); // 第三行第一列
gridLayout->addWidget(label8, 2, 1); // 第三行第二列
gridLayout->addWidget(label9, 2, 2); // 第三行第三列
gridLayout->addWidget(label10, 3, 0); // 第四行第一列
gridLayout->addWidget(label11, 3, 1); // 第四行第二列
gridLayout->addWidget(label12, 3, 2); // 第四行第三列
// 设置 QGridLayout 的水平和垂直间隔
gridLayout->setHorizontalSpacing(10);
gridLayout->setVerticalSpacing(10);
// 将 QGridLayout 设置为窗口的布局
QWidget* window = new QWidget();
window->setLayout(gridLayout);
window->show();
```
这样,您就可以在一个窗口中看到 12 个 QLabel,且按照两行三列的方式排列,并且单元格之间具有一定的间隔。