Название: динамическое размещение виджетов в QGridLayout Отправлено: Guk от Май 30, 2006, 15:17 Доброго времени суток.
Столкнулся я со следующей проблемой: есть на формочке объект QFrame, на котором будут располагаться однотипные виджеты (виджет сам творил - некое подобие кнопки). Только вот сколько будет этих виджетов я узнаю только в процессе выполнения программы. Создаю я QGridLayout от моего фрейма: Код:
и добавляю туда только что созданные виджеты: Код: IPB = new IPButton(ui.frame); Только вот незадача, при добавлении - они выстраиваются в один столбец, а нужна немного иная логика - чтоб они добавлялись в строку по горизонтали, а когда достигали правого края фрейма - становились в новую строку. Ширина фрейма непстоянна, и зависит от разрешения экрана. В мануале пишут, что QGridLayout самостоятельно анализирует к-во виджетов в нем, и сам раставляет их по столбцам и строкам в зависимости от размеров и лейаутов. Вот как раз этого он и не делает... Единственное что придумал - это в конструкторе данной формы определять размер фрейма, высчитывать сколько моих виджетов поместиться по горизонтали, и добавлять их "руками" в определенные позиции: Код: IPB = new IPButton(ui.frame); Но это опять же - работа руками, есть желание заставить QGridLayout самому располагать их в нужной мне последовательности. Все таки - code less! Может кто сталкиался с подобной проблемой - подскажите пожалуйста. P.S. Qt 4.1.1 Название: динамическое размещение виджетов в QGridLayout Отправлено: alex0303 от Май 30, 2006, 15:56 Не знаю как в 4.х.х а в 3.х.х есть пример customlayout, а там class SimpleFlow.
Реализует насколко я понял то что вам надо. Название: динамическое размещение виджетов в QGridLayout Отправлено: Guk от Май 30, 2006, 16:38 Спасибо! Действительно именно то, что нужно. в 4-ке тоже оказался такой пример. Немного по друому называется - Flow Layout Example
Еще раз спасибо. |