Нахождение максимальной ширины столбца в QGridLayout - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть QGridLayout и QScrollArea внутри одного из столбцов. Кроме того, у меня есть QGroupBox внутри QScrollArea, где я перечисляю несколько комбинированных окон. По сути, я хочу избежать использования горизонтальных полос прокрутки в QScrollArea и иметь только вертикальные полосы, если количество комбинированных окон велико. Это можно сделать, установив ширину QGroupBox.

Однако у меня нет жестко заданного размера, и я позволю QScrollArea расти настолько, насколько позволяет столбец. После отрисовки элементов они фиксируются (без изменения размера).

Итак, как же я могу найти размер столбца в QGridLayout? Как только я нахожу это, я могу соответственно ограничить ширину.

Спасибо!

1 Ответ

0 голосов
/ 28 апреля 2011

Если все, что вам нужно, это избегать отображения горизонтальных полос прокрутки в QScrollArea, просто вызовите

QScrollArea::setHorizontalScrollBarPolicy()

с Qt :: ScrollBarAlwaysOff. Чтобы получить ширину и высоту ячейки QGridLayout, используйте следующий код:

QSize getLayoutCellSize(QGridLayout *layout, int row, int column)
{
    QLayoutItem *item = layout->itemAtPosition(row, column);
    if (item)
        return (item->sizeHint());
    return (QSize());
}

Вы также можете использовать QLayoutItem :: geometry () вместо QLayoutItem :: sizeHint ().

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