QGridLayout可以使用setColumnMinimumWidth()和setColumnStretch()方法来设置列的最小宽度和占用比例,从而实现固定间距。示例代码如下:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
QGridLayout layout(&window);
// 设置第一列最小宽度为100,第二列最小宽度为200
layout.setColumnMinimumWidth(0, 100);
layout.setColumnMinimumWidth(1, 200);
// 设置第一列占据整个布局的1/3,第二列占据2/3
layout.setColumnStretch(0, 1);
layout.setColumnStretch(1, 2);
// 添加控件
QLabel *label1 = new QLabel("Label 1");
QLabel *label2 = new QLabel("Label 2");
QLineEdit *lineEdit = new QLineEdit();
layout.addWidget(label1, 0, 0);
layout.addWidget(lineEdit, 0, 1);
layout.addWidget(label2, 1, 0);
window.show();
return app.exec();
}
在该示例中,我们设置了第一列最小宽度为100,第二列最小宽度为200,并将第一列占据整个布局的1/3,第二列占据2/3。这样就实现了固定间距的效果。