Russian Qt Forum
Октябрь 01, 2024, 00:37
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Сжатие виджета в точку или Борьба с компоновщиком.
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Сжатие виджета в точку или Борьба с компоновщиком. (Прочитано 7048 раз)
Bepec
Гость
Сжатие виджета в точку или Борьба с компоновщиком.
«
:
Март 11, 2012, 13:31 »
Приветствую джентельменов и дам.
Вопрос: Как наименее извращённым способом можно выполнить сжатие виджета с компоновщиками до размеров точки? (ну или скажем размеров 10 на 10)
Что мешает: мешает компоновщик, не уменьшающий виджеты ниже минимального значения.
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #1 :
Март 11, 2012, 13:39 »
Ну дык и измени минимальное значение через QWidget::setMinimumSize().
Записан
Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #2 :
Март 11, 2012, 13:41 »
Поясню. Даже если утыкать все виджеты минимал сайзом, компоновщик не даёт ужать виджет.
PS напомню, у всех виджетов изначально minimumSize(0,0).
Записан
SimpleSunny
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #3 :
Март 11, 2012, 18:27 »
Поставить maximumSize(10, 10);
Записан
Syveren
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #4 :
Март 11, 2012, 18:47 »
попробуй QWidget::setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored)
«
Последнее редактирование: Март 11, 2012, 19:30 от Syveren
»
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #5 :
Март 11, 2012, 19:05 »
Если/пока "есть место" компоновщик стремится к "preferred"
[/offtop]
Возникновение подобной задачи должно насторожить программиста, что-то явно не так, кошка гладится против шерсти
Записан
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #6 :
Март 12, 2012, 06:50 »
Таки в рассуждениях
Цитировать
"Если/пока" есть место
есть одна существенная деталь - места минимальное количество, но дальше он уменьшать не даёт
Спасибо за ответы. Пробую.
Записан
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #7 :
Март 12, 2012, 07:06 »
Установка максимальных значений для всего виджета (10,10) не даёт результатов, ибо компоновщик возвращает значения сразу после установки на минимально видимое для виджетов (270,270 примерно)
Установка политики Ignored даёт результат внизу сообщения.
Но что-то совсем не нравится как оно выглядит
(самая извечная проблема)
Вопрос: Можно ли "свернуть" виджет по другому, оставив лишь заголовок окна?
«
Последнее редактирование: Март 12, 2012, 07:08 от Bepec
»
Записан
ufna
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #8 :
Март 12, 2012, 07:27 »
в компоновщике случаем нет заданный margin и подобных свойств?
Записан
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #9 :
Март 12, 2012, 07:34 »
нулевые
Это было бы слишком просто.
Записан
Syveren
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #10 :
Март 12, 2012, 10:22 »
чтобы оставить только заголовок, нужно поставить Ignored также всем виджетам на форме
Записан
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #11 :
Март 12, 2012, 10:29 »
Syveren, если не ставить ВСЕМ игноред, тогда ничего не схлопнется.
В приведённом мной скрине игноред стоит у всех. И только поэтому компоновщик позволил схлопнуться до таких размеров.
PS установка Игноред только виджету родителю даёт 0 (нуль) результатов.
Записан
Kolobok
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #12 :
Март 12, 2012, 12:43 »
Политика в данном случае не играет никакой роли. У компоновщика должны бить нулевые margin и spacing и у всех виджетов minimalSizeHint() должен возвращать QSize(0,0).
Записан
Bepec
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #13 :
Март 12, 2012, 12:49 »
Собственно все виджеты умерли в точки. (именно благодаря политике ignore)
У компоновщика с радостным ликом стоят все нулевые значения.
Эта ситуация отображена на скрине.
Записан
ufna
Гость
Re: Сжатие виджета в точку или Борьба с компоновщиком.
«
Ответ #14 :
Март 12, 2012, 13:03 »
код в студию
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...