Название: QSplitter в дизайнере Отправлено: Avazart от Мая 22, 2013, 01:29 Есть два виджета, между ними сплитер :
(http://s020.radikal.ru/i714/1305/ef/a9fc9158298e.png) При добавлении сплитера виджеты становятся одинаковой высоты. Мне нужно изменить изначальный размер виджета #2, что бы когда появлялось окно прогаммы, размер был меньше чем виджета #1 Первый виджет-дерево, он должен заполнять основное пространство, второй виджет-текстовое поле, "лог ошибок" - он должен сохранять свою высоту при изменении окна программы, но должна быть возможность изменять его высоту с помощью перемещения самого сплитера. Можно ли уменьшить изначальную высоту второго виджета ( соотношение высот виджетов ) ? P.S. QtCreator, Qt5.0.2, Win7 Название: Re: QSplitter в дизайнере Отправлено: Figaro от Мая 22, 2013, 03:59 В 5-ке не знаю, но в 4-ке:
Для виджетов №1 и №2 устанавливаешь QSizePolicy->setVerticalStretch в нужных пропорциях, как-то так. Название: Re: QSplitter в дизайнере Отправлено: Avazart от Мая 22, 2013, 14:19 А как конкретно? Так как пробовал не работает...
Изменение setVerticalStretch ни как не влияет на размеры при изменении в дизайнере. Название: Re: QSplitter в дизайнере Отправлено: sergek от Мая 22, 2013, 14:38 У меня тоже не получилось. Сделал вручную в конструкторе формы примерно так:
Код: splitter->setStretchFactor(0,0); Название: Re: QSplitter в дизайнере Отправлено: Avazart от Мая 22, 2013, 15:20 Вообще не понятно вот нашел похожую тему http://www.prog.org.ru/topic_8738_0.html
Код: splitter->setSizes(QList<int>() << 1 << 5); QList<int>() это размеры или соотношения ? Код: splitter->setStretchFactor(0,0); Зачем такие манипуляции ? Я попробовал код - вышло все наоборот высота верхнего виджета уменьшилась Название: Re: QSplitter в дизайнере Отправлено: Figaro от Мая 22, 2013, 17:07 Не для сплиттера, а для виджетов плюс одному QSizePolicy::Expanding поставить...
Название: Re: QSplitter в дизайнере Отправлено: Avazart от Мая 22, 2013, 18:28 Цитировать Не для сплиттера, а для виджетов плюс одному QSizePolicy::Expanding поставить... Так я и ставил для верхнего виджета 1, и политика QSizePolicy::Expanding тоже стоит у обоих виджетов...Толку ноль... Название: Re: QSplitter в дизайнере Отправлено: Figaro от Мая 23, 2013, 04:57 минимально компилируемый код в студию, проверю правда на 4.8.3
Название: Re: QSplitter в дизайнере Отправлено: Avazart от Мая 23, 2013, 13:55 Решил
[CPP]ui->splitter->setStretchFactor(0,1); ui->splitter->setStretchFactor(1,0); ui->splitter->setSizes(QList<int>()<<20<<50);[/CPP] Но совсем не понятно как оно работает, как высчитывает размеры по setSizes(), эксперименты с "размерами" не помогли. |