Доброго времени суток.
Столкнулся я со следующей проблемой: есть на формочке объект 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