Название: Вопрос по sizePolicy Отправлено: Simba от Октябрь 04, 2010, 15:30 Есть два виджета, объединенных сплиттером. После применения компоновщика они встают одинаково по горизонтали.
Мне нужно чтобы соотношение между левым виджетом и правым виджетом было примерно 1:4 при показе диалога. Я согласен даже установить левому виджету размер 200 пикселей по горизонтали, но при этом когда я растягиваю окно, должен растягиваться только правый виджет, а левый оставался в первоначальном размере. Сейчас все варианты, которые я перепробовал не дают мне установить ни соотношение виджетов, ни размер. Если установить горизонтальное растяжение, то при изменении размера оба виджета начинают менять размер, а я хочу, чтобы первый виджет реагировал только на сплиттер и ни на что больше. Помогите! Уже на раз сталкиваюсь с подобной конструкцией интерфейса и всё время приходится в коде попиксельно выставлять :( Название: Re: Вопрос по sizePolicy Отправлено: GreatSnake от Октябрь 04, 2010, 16:05 setMinimumWidth(200), setMaximumWidth(200)
Название: Re: Вопрос по sizePolicy Отправлено: Kolobok от Октябрь 04, 2010, 16:10 Код: ui->splitter->setStretchFactor( 0, 0 ); Название: Re: Вопрос по sizePolicy Отправлено: Simba от Октябрь 04, 2010, 16:35 спасибо за ответы!
хотелось бы конечно, чтобы всё это регулировалось в design-time StretchFactor можно, а вот начальный размер виджета похоже нет :( Я надеялся, что sizePolicy "Preferred" берет значение из baseSize. А остальные виджеты подстраиваются под это. Было бы не плохо. Но... нет. Значит буду писать в коде. Название: Re: Вопрос по sizePolicy Отправлено: whirlwind от Октябрь 04, 2010, 17:46 Я согласен даже установить левому виджету размер 200 пикселей по горизонтали, но при этом когда я растягиваю окно, должен растягиваться только правый виджет, а левый оставался в первоначальном размере. В дизайнере тоже можно такое сделать 1) horizontal size solicy у левого виджета должна быть Maximum, у правого Expanding 2) у левого поставить maximum Width 200 Вроде все так и будет. Название: Re: Вопрос по sizePolicy Отправлено: Simba от Октябрь 04, 2010, 21:12 whirlwind
Если так сделать, то сплиттер работать перестанет. Он всё время пытается сделать так, чтобы виджеты были одинаковыми справа и слева, и свойство expanding правого виджета действует лишь в правую сторону. Поиграл с sizePolicy сплиттера - тоже ничего. Не могу я никак подружиться с кьютишным компоновщиком :( Придется в коде прописывать, как товарищи советовали. В принципе и раньше так делал, но думал есть готовый вариант в дизайнере. Название: Re: Вопрос по sizePolicy Отправлено: whirlwind от Октябрь 05, 2010, 11:19 8)
Вот в этом проектике так сделано, и вроде работает Один виджет не больше 200 пикселей, второй растет. Размеры виджетов менять можно (но левый не больше 200, как и сказали) Название: Re: Вопрос по sizePolicy Отправлено: CL0NE от Октябрь 06, 2010, 02:24 Цитировать В дизайнере тоже можно такое сделать и вместо1) horizontal size solicy у левого виджета должна быть Цитировать 2) у левого поставить maximum Width 200 у левого поставить horizontal stretch 0, у правого - 1Идеальных 200 пикселей нет, но по требованиям: изменить размер левого виджета можно только при помощи сплиттера, при изменении размеров окна расширяется/сужается только окно вроде бы оно :) Название: Re: Вопрос по sizePolicy Отправлено: UVV от Октябрь 06, 2010, 07:49 QSizePolicy::Ignored
? |