Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Растяжение виджетов
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Гость_Дмитрий_*
Недавно начал изучать QT, пытаюсь накидать просто проект чтобы понять как что работает. И это никак не получается =/

Мне нужно чтобы в шаблоне mainWindow, был компоновщик содержащий к примеру два списка, при этом изменения размеров окна как то отражались на размерах содержимого компоновщика (списках).

Пытаюсь сделать это так:
Создаю проект с шаблоном mainWindow.
В QT Designere:
Добавляю на centralWidget, HorizontalLayout.
В это LayOut запихиваю два списка.

И не могу понять как сделать так, чтобы при изменение размера окна, изменялся размер списков.
У меня получается просто изменение размера окна, никак не меняет размеры списков.

PS: Перепробовал кучи вариантов, мозг просто опух. Ничего не могу понять, все что прочитал противоречиво. Примеры сложные и момент в котором настраивается растяжение запрятан неизвестно где. Подскажите плз как решить поставленную задачу, или хотя бы где можно прочитать (понятным, простым языком) про то как это можно это реализовать.

Авварон
Омг:( дизайнер - зло.
О5 25 в кратце - есть всего 1 способ расположить виждеты в определенном порядке - нужно взять виджет parent, виджеты child1...childn, взять лайаут layout. Сделать layout.addWidget(childi); добавив виджеты, затем сделать parent->setLayout(layout);
В дизайнере, перетаскивая лайаут на форму, вы создаете дополнительный виджет (к-ый не видно в дизайнере), вешаете ему лайаут и добавляете в него виджет. НО можно кликнуть правый клик по любому виджету и назначить лайаут ему. Тогда все, что лежит на нем, укладывается в соответствии с лайаутом в размеры виджета.
Гость_Дмитрий_*
Цитата(Авварон @ 30.10.2010, 22:18) *
Омг:( дизайнер - зло.
О5 25 в кратце - есть всего 1 способ расположить виждеты в определенном порядке - нужно взять виджет parent, виджеты child1...childn, взять лайаут layout. Сделать layout.addWidget(childi); добавив виджеты, затем сделать parent->setLayout(layout);
В дизайнере, перетаскивая лайаут на форму, вы создаете дополнительный виджет (к-ый не видно в дизайнере), вешаете ему лайаут и добавляете в него виджет. НО можно кликнуть правый клик по любому виджету и назначить лайаут ему. Тогда все, что лежит на нем, укладывается в соответствии с лайаутом в размеры виджета.

Как я вас понял:
#include <QtGui>
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    QWidget wgt;
    QListWidget* lwA = new QListWidget;
    QListWidget* lwB = new QListWidget;
    QBoxLayout* h1 = new QBoxLayout(QBoxLayout::LeftToRight);
    h1->addWidget(lwA);
    h1->addWidget(lwB);
    wgt.setLayout(h1);
    wgt.show();
    return app.exec();
//Просьба не обращать внимание на небольшую утечку памяти)
}



Действительно растяжение окна изменяет размеры списков. Но как сделать тоже самое в QT Designer'e?
Гость_Дмитрий_*
Всем спасибо, все понял))))

PS: Извиняюсь за дикую тупость :)
Litkevich Yuriy
Трёп выделил: компоновщики или якоря?
bvn13
Цитата(Гость_Дмитрий_* @ 31.10.2010, 9:55) *
Всем спасибо, все понял))))

PS: Извиняюсь за дикую тупость :)


Расскажите, плз. Тоже интересно, как это дизайнером делать
K1L0z
Цитата(bvn13 @ 31.10.2010, 14:13) *
Расскажите, плз. Тоже интересно, как это дизайнером делать

мне то же интересно :mellow:
Litkevich Yuriy
bvn13, K1L0z, читайте про компоновщики:
тыц
и тыц
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.