как добавить qspaceritem в qgridlayout - PullRequest
0 голосов
/ 02 июля 2019

Я вручную создал две группы с множеством предметов. В одном групповом блоке больше элементов, чем во втором, и это проблема макета. Смотри картинку:

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 qgridlayout.h: 123: 10: примечание: здесь объявлено защищенным

groupBox2Layout-> addWidget (groupBox2Spacer); masim.cpp: 60: 22: ошибка: отсутствует соответствующая функция-член для вызова addWidget qgridlayout.h: 102: 17: примечание: функция-кандидат недопустима: нет известного преобразования из 'QSpacerItem *' в 'QWidget *' для первого аргумента qgridlayout.h: 103: 10: note: функция-кандидат недопустима: требуется как минимум 3 аргумента, но был предоставлен 1 qgridlayout.h: 104: 10: note: функция-кандидат недопустима: требуется как минимум 5 аргументов, но был предоставлен 1

Не могу найти другой способ, как добавить Spacer в «Аналоговый» групповой блок ... Вы можете мне помочь?

1 Ответ

1 голос
/ 03 июля 2019

примечание: функция-кандидат недопустима: требуется как минимум 3 аргумента, но был предоставлен 1

Вы должны использовать эту публичную перегрузку, чтобы добавить пробел

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

, поэтому вам нужно будет указать строку и столбец для прокладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...