Как сохранить соотношение сторон виджетов в Qt?
Правильный ответ - создать widgets собственный менеджер по расположению. Это ui возможно путем создания подкласса aspect-ratio QLayout.
Методы для реализации при создании подкласса QLayout
- void addItem(QLayoutItem* item);
- Добавляет элемент в макет.
- int count() const;
- Возвращает количество элементов.
- QLayoutItem* itemAt(int index) const;
- Возвращает ссылку на элемент по индексу или 0, если его нет.
- QLayoutItem* takeAt(int index);
- Принимает и возвращает элемент из макета из индекса или возвращает 0, если его нет.
- Qt::Orientations expandingDirections() const;
- Возвращает направления раскрытия макетов.
- bool hasHeightForWidth() const;
- Сообщает, обрабатывает ли макет высоту для расчета ширины.
- QSize minimumSize() const;
- Возвращает минимальный размер макетов.
- void setGeometry(const QRect& rect);
- Устанавливает геометрию макета и элементов внутри него. Здесь вам нужно сохранить соотношение сторон и выполнить центрирование.
- QSize sizeHint() const;
- Возвращает предпочтительный размер макета.
Дополнительная литература
user-interface
qt
widget
aspect-ratio
2021-12-13T08:30:18+00:00
2022-10-23T12:12:51+00:00
Capitoshka
Вопросы с похожей тематикой, как у вопроса:
Как сохранить соотношение сторон виджетов в Qt?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.