QSizePolicy (Minimum, Maximum), как понимать эти значения? |
Здравствуйте, гость ( Вход | Регистрация )
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 |
|
|
|
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 |
Fixed ... да, спасибо, я читал в доке... но это ведь запутывание какое то... начиная с "не" Цитата Minimum Виджет не должен быть меньше значения, возвращаемого методом sizeHint() Зачем писать "не должен" если можно написать должен?! Когда такое читаешь в доке или в коде, мозги только больше греются... Это не относится к BRE, он просто перевел с доки. Например в коде
Добавлено: пример кода вышел не совсем правильный, но думаю идея ясна Уже можно ставить куллер на череп... Разве не проще будет так: Виджет будет больше значения sizeHint(). Ну это лирическое отступление... По теме: Виджет будет больше значения sizeHint() == Minimum не пойму логики Сообщение отредактировал 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 |
BRE, дело в том, что прочитав объяснение, становится понятно, но нужно запоминать. А использовать интуицию нельзя. IMHO, нужно один раз понять, что все "политики" относятся не к размеру виджета, а к sizeHint (это основополагающее значение для работы layout'ов), и дальше все становится на свои места. |
|
|
Текстовая версия | Сейчас: 25.4.2024, 18:25 |