Qt GUI: смещение элементов в groupBox с горизонтальной разметкой - PullRequest
0 голосов
/ 05 сентября 2018

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

Файл пользовательского интерфейса: enter image description here

Результат: enter image description here

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

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

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

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

Что происходит? Что мне делать?

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 Ответ

0 голосов
/ 05 сентября 2018

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

...