crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Растяжение виджетов
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 31.10.2010, 15:32
  bvn13, K1L0z, читайте про компоновщики:
тыц
и тыц
K1L0z Дата 31.10.2010, 15:27
 
Цитата(bvn13 @ 31.10.2010, 14:13) *
Расскажите, плз. Тоже интересно, как это дизайнером делать

мне то же интересно :mellow:
bvn13 Дата 31.10.2010, 13:13
 
Цитата(Гость_Дмитрий_* @ 31.10.2010, 9:55) *
Всем спасибо, все понял))))

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


Расскажите, плз. Тоже интересно, как это дизайнером делать
Litkevich Yuriy Дата 31.10.2010, 9:42
  Трёп выделил: компоновщики или якоря?
Гость_Дмитрий_* Дата 31.10.2010, 8:55
  Всем спасибо, все понял))))

PS: Извиняюсь за дикую тупость :)
Гость_Дмитрий_* Дата 31.10.2010, 8:41
 
Цитата(Авварон @ 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?
Авварон Дата 30.10.2010, 22:18
  Омг:( дизайнер - зло.
О5 25 в кратце - есть всего 1 способ расположить виждеты в определенном порядке - нужно взять виджет parent, виджеты child1...childn, взять лайаут layout. Сделать layout.addWidget(childi); добавив виджеты, затем сделать parent->setLayout(layout);
В дизайнере, перетаскивая лайаут на форму, вы создаете дополнительный виджет (к-ый не видно в дизайнере), вешаете ему лайаут и добавляете в него виджет. НО можно кликнуть правый клик по любому виджету и назначить лайаут ему. Тогда все, что лежит на нем, укладывается в соответствии с лайаутом в размеры виджета.
Гость_Дмитрий_* Дата 30.10.2010, 18:27
  Недавно начал изучать QT, пытаюсь накидать просто проект чтобы понять как что работает. И это никак не получается =/

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

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

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

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

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 19.2.2020, 7:54