Russian Qt Forum
Сентябрь 30, 2024, 10:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Вопрос по Layout  (Прочитано 8569 раз)
Lion
Гость
« : Январь 07, 2007, 23:34 »

Помогите решить проблему :?:  У меня есть три QStackedLayout, которые пломещены в QVBoxLayout. Мне нужно чтобы первый и третий не меняли свой размер по вертикали в сторону увеличения от оптимального, а второй занимал всё доступное простанство. В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom. Пол дня изучал ассистент - ничего не помогло.
Записан
Steven_Orko
Гость
« Ответ #1 : Январь 08, 2007, 00:04 »

maxSize и minSize помогают?
Записан
Lion
Гость
« Ответ #2 : Январь 08, 2007, 07:21 »

Цитата: "Steven_Orko"
maxSize и minSize помогают?

Нет, мне надо чтоб крайние лэйауты изменяли размер, но не больше оптимального.
Записан
Steven_Orko
Гость
« Ответ #3 : Январь 08, 2007, 17:09 »

А оптимальный как-то ведь определяется, верно? Так выстави его максимально возможным, а минимальный оставь как есть. Должно получится то, что ты хочешь. Хотя может, есть другой вариант, интересно, что бы ответил Dendy?
Записан
Alex03
Гость
« Ответ #4 : Январь 08, 2007, 19:18 »

Понятия минимума и максимума у тролей несколько запутанное! Улыбающийся
Т.е. часто чтобы виджет не растягивался надо ставить ему максимум а не минимум.
Записан
bigirbis
Гость
« Ответ #5 : Январь 08, 2007, 19:35 »

Так и есть, ограничение сверху: setMaxSize()
Записан
Alex03
Гость
« Ответ #6 : Январь 08, 2007, 19:57 »

Цитата: "bigirbis"
Так и есть, ограничение сверху: setMaxSize()


С этим как раз всё логично.

Я имел  ввиду QSizePolicy::SizeType или конкретно QSizePolicy::Minimum и QSizePolicy::Maximum
Записан
Lion
Гость
« Ответ #7 : Январь 08, 2007, 23:36 »

Никакие SizePlicy не помогаю, хотя должны, а если в ручную ставить setMaxSize(), тогда зачем вообще нужны эти лэйауты! Должен быть способ, т.к. это очевидная задача лэйаутов.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #8 : Январь 09, 2007, 00:18 »

Лэйауты не знают, да и не должны знать, какой размер для пользователя предпочтителен. Для этого и используются maxSize и minSize наряду с политиками. Они не противоречат, а дополняют друг друга. ИМХО - для этой задачи надо установить setMaxSize() для верхнего и нижнего виджета, а для среднего сделать политику QSizePolicy::Minimum или QSizePolicy::MinimumExpanding.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
BaltikS
Гость
« Ответ #9 : Январь 09, 2007, 07:14 »

1. QSizePolicy::Fixed
2. QSizePolicy::Expanding
3. QSizePolicy::Fixed
Записан
QCasper
Гость
« Ответ #10 : Январь 09, 2007, 12:56 »

Цитата: "BaltikS"
1. QSizePolicy::Fixed
2. QSizePolicy::Expanding
3. QSizePolicy::Fixed


В таком случае 1й и 3й не смогут уменьшаться.
А согласно Т.З.:

Цитата: "Lion"
мне надо чтоб крайние лэйауты изменяли размер, но не больше оптимального.
Записан
BaltikS
Гость
« Ответ #11 : Январь 09, 2007, 14:11 »

Цитировать
В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom
.Согласно ТЗ, это как раз таки - так :lol:
Записан
Lion
Гость
« Ответ #12 : Январь 09, 2007, 22:01 »

Цитата: "BaltikS"
Цитировать
В общем, если говорить языком Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom
.Согласно ТЗ, это как раз таки - так :lol:

Совсем не так.
Записан
BaltikS
Гость
« Ответ #13 : Январь 09, 2007, 23:46 »

Lion, то что ты написал
Цитировать
Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom
, это так... Я вот тогда не понимаю какой случай ты имеешь ввиду, точнее понял что первый...
Записан
Lion
Гость
« Ответ #14 : Январь 10, 2007, 07:37 »

Цитата: "BaltikS"
Lion, то что ты написал
Цитировать
Delphi первый - AlignTop, второй - AlignClient, третий - AlignBottom
, это так... Я вот тогда не понимаю какой случай ты имеешь ввиду, точнее понял что первый...

Будем считать что у первого и врогого лайаута стоит (в Delphi) AutoSize = true.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.188 секунд. Запросов: 23.