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