crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QSizePolicy (Minimum, Maximum), как понимать эти значения?
DIMEDROLL
  опции профиля:
сообщение 20.4.2010, 17:08
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


смотрю в Кьют Дизайнере в Редакторе Свойств(виджета) на значение sizePolicy и диву даюсь, выбирая значение Minimum - виджет растягивается на все окно, значение Maximum делает его минимального размера. Где логика?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2010, 18:04
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(DIMEDROLL @ 20.4.2010, 21:08) *
Где логика?
я с тобой солидарен, компоновщики - отличная идея, но реализация через одно место.
Троли это объясняют очень длинными словами, на столько длинными, что не заглядывая в асистент я их даже не вспомню :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 20.4.2010, 18:22
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Fixed
Должно учитываться только значение, возвращаемое методом sizeHint(). То есть размер виджета не изменяем.

Minimum
Виджет не должен быть меньше значения, возвращаемого методом sizeHint()

Maximum
Виджет не должен быть больше значения, возвращаемого методом sizeHint()

Preferred
Виджет может быть больше или меньше значения, возвращаемого методом sizeHint(). То есть виджет может как растягиваться, так и сжиматься

MinimumExpanding
Виджет не должен быть меньше чем sizeHint(). Лейаут постарается предоставлять виджету как можно больше места

Expanding
Виджет может быть больше или меньше sizeHint(). Лейаут постарается предоставлять виджету как можно больше места. То есть виджет может как растягиваться, так и сжиматься, но он предпочтительнее растягивается

Ignored
Значение, возвращаемое методом sizeHint(), неберется во внимание. Лейаут постарается предоставлять виджету как можно больше места
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 20.4.2010, 18:43
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

Спасибо сказали: 23 раз(а)




Репутация:   0  


Цитата(BRE @ 20.4.2010, 18:22) *
Fixed
...

да, спасибо, я читал в доке... но это ведь запутывание какое то... начиная с "не" :)

Цитата
Minimum
Виджет не должен быть меньше значения, возвращаемого методом sizeHint()

Зачем писать "не должен" если можно написать должен?! Когда такое читаешь в доке или в коде, мозги только больше греются... Это не относится к BRE, он просто перевел с доки. Например в коде
#ifndef !NOT_AVAILABLE
...
#else
...
#endif

Добавлено: пример кода вышел не совсем правильный, но думаю идея ясна
Уже можно ставить куллер на череп... :blink:

Разве не проще будет так: Виджет будет больше значения sizeHint().
Ну это лирическое отступление...

По теме:
Виджет будет больше значения sizeHint() == Minimum
не пойму логики :blink:

Сообщение отредактировал DIMEDROLL - 20.4.2010, 18:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2010, 18:45
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


DIMEDROLL, я склонен полагать, что и в Qt 5 этот касяк не исправят. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 20.4.2010, 20:20
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


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

Minimum
Виджет не должен быть меньше значения, возвращаемого методом sizeHint()

Ключевое слово здесь sizeHint.
Minimum означает, что размер виджета будет не меньше (минимум) значения возвращаемого sizeHint.

Не знаю понятно ли объясняю, но думать нужно не от размера виджета, а от размера sizeHint.
"Размер виждета будет минимум sizeHint, но может быть больше"

Сообщение отредактировал BRE - 20.4.2010, 20:38
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.4.2010, 20:38
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


BRE, дело в том, что прочитав объяснение, становится понятно, но нужно запоминать. А использовать интуицию нельзя.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 20.4.2010, 20:45
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Litkevich Yuriy @ 20.4.2010, 21:38) *
BRE, дело в том, что прочитав объяснение, становится понятно, но нужно запоминать. А использовать интуицию нельзя.

IMHO, нужно один раз понять, что все "политики" относятся не к размеру виджета, а к sizeHint (это основополагающее значение для работы layout'ов), и дальше все становится на свои места. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 18:25