Название: Вопрос по Layout Отправлено: Lion от Январь 07, 2007, 23:34 Помогите решить проблему :?: У меня есть три QStackedLayout, которые пломещены в QVBoxLayout. Мне нужно чтобы первый и третий не меняли свой размер по вертикали в сторону увеличения от оптимального, а второй занимал всё доступное простанство. В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom. Пол дня изучал ассистент - ничего не помогло.
Название: Вопрос по Layout Отправлено: Steven_Orko от Январь 08, 2007, 00:04 maxSize и minSize помогают?
Название: Вопрос по Layout Отправлено: Lion от Январь 08, 2007, 07:21 Цитата: "Steven_Orko" maxSize и minSize помогают? Нет, мне надо чтоб крайние лэйауты изменяли размер, но не больше оптимального. Название: Вопрос по Layout Отправлено: Steven_Orko от Январь 08, 2007, 17:09 А оптимальный как-то ведь определяется, верно? Так выстави его максимально возможным, а минимальный оставь как есть. Должно получится то, что ты хочешь. Хотя может, есть другой вариант, интересно, что бы ответил Dendy?
Название: Вопрос по Layout Отправлено: Alex03 от Январь 08, 2007, 19:18 Понятия минимума и максимума у тролей несколько запутанное! :)
Т.е. часто чтобы виджет не растягивался надо ставить ему максимум а не минимум. Название: Вопрос по Layout Отправлено: bigirbis от Январь 08, 2007, 19:35 Так и есть, ограничение сверху: setMaxSize()
Название: Вопрос по Layout Отправлено: Alex03 от Январь 08, 2007, 19:57 Цитата: "bigirbis" Так и есть, ограничение сверху: setMaxSize() С этим как раз всё логично. Я имел ввиду QSizePolicy::SizeType или конкретно QSizePolicy::Minimum и QSizePolicy::Maximum Название: Вопрос по Layout Отправлено: Lion от Январь 08, 2007, 23:36 Никакие SizePlicy не помогаю, хотя должны, а если в ручную ставить setMaxSize(), тогда зачем вообще нужны эти лэйауты! Должен быть способ, т.к. это очевидная задача лэйаутов.
Название: Вопрос по Layout Отправлено: Racheengel от Январь 09, 2007, 00:18 Лэйауты не знают, да и не должны знать, какой размер для пользователя предпочтителен. Для этого и используются maxSize и minSize наряду с политиками. Они не противоречат, а дополняют друг друга. ИМХО - для этой задачи надо установить setMaxSize() для верхнего и нижнего виджета, а для среднего сделать политику QSizePolicy::Minimum или QSizePolicy::MinimumExpanding.
Название: Вопрос по Layout Отправлено: BaltikS от Январь 09, 2007, 07:14 1. QSizePolicy::Fixed
2. QSizePolicy::Expanding 3. QSizePolicy::Fixed Название: Вопрос по Layout Отправлено: QCasper от Январь 09, 2007, 12:56 Цитата: "BaltikS" 1. QSizePolicy::Fixed 2. QSizePolicy::Expanding 3. QSizePolicy::Fixed В таком случае 1й и 3й не смогут уменьшаться. А согласно Т.З.: Цитата: "Lion" мне надо чтоб крайние лэйауты изменяли размер, но не больше оптимального. Название: Вопрос по Layout Отправлено: BaltikS от Январь 09, 2007, 14:11 Цитировать В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom .Согласно ТЗ, это как раз таки - так :lol:Название: Вопрос по Layout Отправлено: Lion от Январь 09, 2007, 22:01 Цитата: "BaltikS" Цитировать В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom .Согласно ТЗ, это как раз таки - так :lol:Совсем не так. Название: Вопрос по Layout Отправлено: BaltikS от Январь 09, 2007, 23:46 Lion, то что ты написал
Цитировать Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom , это так... Я вот тогда не понимаю какой случай ты имеешь ввиду, точнее понял что первый...Название: Вопрос по Layout Отправлено: Lion от Январь 10, 2007, 07:37 Цитата: "BaltikS" Lion, то что ты написал Цитировать Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom , это так... Я вот тогда не понимаю какой случай ты имеешь ввиду, точнее понял что первый...Будем считать что у первого и врогого лайаута стоит (в Delphi) AutoSize = true. Название: Вопрос по Layout Отправлено: Dendy от Январь 10, 2007, 09:25 ОбьІчно когда я треяюсь в лейоутах - захожу в QtDesigner и начинаю експериментировать. Если нужно смотреть на готовой программе - юзайте QtPropertyBrowser.
|