2011-02-01 3 views
0

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

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

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

Спасибо!

ответ

0

Если все, что вы хотите, чтобы избежать отображения горизонтальных полос прокрутки в 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 :: геометрию() вместо QLayoutItem :: sizeHint().

Смежные вопросы