gpt4 book ai didi

c++ - 如何将 qspaceritem 添加到 qgridlayout

转载 作者:行者123 更新时间:2023-11-28 04:15:03 40 4
gpt4 key购买 nike

我手动创建了两个包含许多项目的组框。一个分组框中的项目比第二个分组框中的项目多,这是一个布局问题。看图:

enter image description here

我测试将垂直间隔器插入“模拟”部分,但没有成功。

一段代码是:

...
groupBox2Layout = new QGridLayout;
groupBox2 = new QGroupBox();
groupBox2->setTitle("Analog");
for(int i=0; i<=15; i++)
{
QSlider *horizontalSlider = new QSlider(Qt::Orientation::Horizontal);
QComboBox *comboBox1 = new QComboBox();
comboBox1->addItems(analogPins);
QLineEdit *lineEdit1 = new QLineEdit("Slider " + QString::number(i));
groupBox2Layout->addWidget(horizontalSlider, i, 0);
groupBox2Layout->addWidget(comboBox1, i, 2);
groupBox2Layout->addWidget(lineEdit1, i, 3);

groupBox2->setLayout(groupBox2Layout);
}

groupBox2Spacer = new QSpacerItem(100,100, QSizePolicy::Expanding, QSizePolicy::Expanding);
groupBox2Layout->
...

我测试过

groupBox2Layout->addItem(groupBox2Spacer);有错误:masim.cpp:60:22: 错误:“addItem”是“QGridLayout”的 protected 成员qgridlayout.h:123:10: 注意:在此处声明为 protected

groupBox2Layout->addWidget(groupBox2Spacer);masim.cpp:60:22: 错误:没有匹配的成员函数来调用“addWidget”qgridlayout.h:102:17: 注意:候选函数不可行:第一个参数没有从“QSpacerItem *”到“QWidget *”的已知转换qgridlayout.h:103:10: 注意:候选函数不可行:需要至少 3 个参数,但提供了 1 个qgridlayout.h:104:10: 注意:候选函数不可行:需要至少 5 个参数,但提供了 1 个

无法找到另一种方法如何将 Spacer 添加到“模拟”组框......你能帮帮我吗?

最佳答案

note: candidate function not viable: requires at least 3 arguments, but 1 was provided

你必须使用这个公共(public)重载来添加间隔符

void addItem(QLayoutItem * item, int row, int column, int rowSpan = 1, int columnSpan = 1, Qt::Alignment alignment = 0)

因此您需要指定间隔符的行和列。

关于c++ - 如何将 qspaceritem 添加到 qgridlayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56858653/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com