Russian Qt Forum
Сентябрь 22, 2024, 20:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: динамическое размещение виджетов в QGridLayout  (Прочитано 5940 раз)
Guk
Гость
« : Май 30, 2006, 15:17 »

Доброго времени суток.

Столкнулся я со следующей проблемой: есть на формочке объект QFrame, на котором будут располагаться однотипные виджеты (виджет сам творил - некое подобие кнопки). Только вот сколько будет этих виджетов я узнаю только в процессе выполнения программы.

Создаю я QGridLayout от моего фрейма:
Код:

QGL = new QGridLayout(ui.frame);

и добавляю туда только что созданные виджеты:
Код:
IPB = new IPButton(ui.frame);
QGL->addWidget(IPB);

Только вот незадача, при добавлении - они выстраиваются в один столбец, а нужна немного иная логика - чтоб они добавлялись в строку по горизонтали, а когда достигали правого края фрейма - становились в новую строку.
Ширина фрейма непстоянна, и зависит от разрешения экрана.

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

Единственное что придумал - это в конструкторе данной формы определять размер фрейма, высчитывать сколько моих виджетов поместиться по горизонтали, и добавлять их "руками" в определенные позиции:
Код:
IPB = new IPButton(ui.frame);
QGL->addWidget(IPB,i,j);

Но это опять же - работа руками, есть желание заставить QGridLayout  самому располагать их в нужной мне последовательности.
Все таки - code less!
Может кто сталкиался с подобной проблемой - подскажите пожалуйста.

P.S. Qt 4.1.1
Записан
alex0303
Гость
« Ответ #1 : Май 30, 2006, 15:56 »

Не знаю как в 4.х.х а в 3.х.х есть пример customlayout, а там class SimpleFlow.
Реализует насколко я понял то что вам надо.
Записан
Guk
Гость
« Ответ #2 : Май 30, 2006, 16:38 »

Спасибо! Действительно именно то, что нужно. в 4-ке тоже оказался такой пример. Немного по друому называется - Flow Layout Example
Еще раз спасибо.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.124 секунд. Запросов: 21.