Qt GUI: смещенные вещи в groupBox с горизонтальной разметкой

Очень просто :

Пользовательский файл:
введите описание изображения здесь

Результат:
введите описание изображения здесь

«Сканы для отображения» — это групповой блок с горизонтальным макетом, который содержит два элемента:

  • Слева вертикальная раскладка с тремя переключателями.
  • Верно, пустое групповое поле.

Красная линия (добавленная вручную на скриншоте) отмечает несоответствие между этими двумя элементами в групповом поле «Сканирование для отображения».

Следует отметить, что пустой групповой блок справа автоматически заполняется пронумерованными флажками при запуске, число которых известно только тогда.

Что здесь происходит ? Что я должен делать ?

PS: код для создания некоторого числа флажков внутри пустого группового поля справа:

m_historyButtons[i] = new QCheckBox();
m_historyButtons[i]->setText(QString::number(i));
m_historyButtons[i]->setObjectName(QString("m_pbDisplayEntry%1").arg(i));

QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(true);
m_historyButtons[i]->setSizePolicy(sizePolicy);

((QGridLayout*)(ui.m_groupBoxHistoryEntries->layout()))->addWidget(m_historyButtons[i], i/m_grid_width, i%m_grid_width);

1

Решение

Групповые ящики Qt оставляют некоторое пространство сверху, за рамкой, для заголовка группового ящика. Чтобы избежать этого, если вам не нужна подпись, используйте вместо нее QFrame. Вновь созданные флажки внутри рамки сохранят свое взаимоисключающее поведение.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]