Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как создать квадратную кнопку?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt GUI
VitAl2013
Как в дизайнере создать кнопку которая бы сохраняла свою квадратную форму при растягивании? Если можно то пример сразу.
igor_bogomolov
Цитата(VitAl2013 @ 20.1.2011, 10:46) *
Как в дизайнере создать кнопку которая бы сохраняла свою квадратную форму при растягивании? Если можно то пример сразу.
к сожалению ни как. Этого и в коде не так просто добиться :(
Rocky
в дизайнере никак. А вообще, нужно наследоваться от кнопки и переопределять QWidget::heightForWidth

Еще думаю можно поставить eventFilter, ловить когда будет ресайз, и ставить кнопке setFixedSize(...) или setGeometry(...)
igor_bogomolov
Rocky, говоришь ты все правильно, вот только в реальности по нормальному решить эту задачу мне так и не удалось. Компоновщики не правильно реагируют на подобные виджеты. Единственный путь который я здесь вижу, это создавать собственный компановщик
Rocky
Кстати да, припоминаю.. Как-то нужно было сделать по 8 квадратных виджетов справа и слева от главной формы. А по середине еще много всяких виджетов было.... Затык был на несколько дней, потому что от ресайза одних виджетов, зависело положение других... И ресайз/лэйаут происходил черте как.... Каким-то образом я сделал чтоб работало как надо, но код жутковатый был... да =)
VitAl2013
А нельзя ли сделать свой дочерний виджет-кнопку у которой прописать "высота = ширине" или это всё равно приведёт к неверной реакции компановщиков?
igor_bogomolov
VitAl2013, проблема не в том что бы сделать кнопку квадратной. Это запросто (но не в дизайнере (хотя и там тоже можно, но только фиксированного размера)). Проблемы возникнут при ресайзе такой формы. Между виджетами будут появляться большие зазоры, что очень портит интерфейс. Если это не так страшно, то делай как сказал Rocky,
Цитата(Rocky @ 20.1.2011, 12:45) *
нужно наследоваться от кнопки и переопределять QWidget::heightForWidth
и выставляй там height = width
VitAl2013
Хорошо буду рыть. Но я нуб (чайник) так что буду делать это долго. Хотелось бы пример готовый.
Наследоваться - это как? Создавать объект наследник класса?
Rocky
да.

Но лучче почитать хотя бы что-нибудь о С++ в таком случае. Что такое классы, наследование и пр.
VitAl2013
Что нибудь я читал и представления имею... Практики мало. Тем более в контексте Qt, что это значит и как реализуется я не понимаю.
igor_bogomolov
http://www.crossplatform.ru/node/227
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.