Как создать квадратную кнопку?, нубский вопрос |
Здравствуйте, гость ( Вход | Регистрация )
Как создать квадратную кнопку?, нубский вопрос |
VitAl2013 |
20.1.2011, 10:46
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 3.1.2011 Пользователь №: 2321 Спасибо сказали: 1 раз(а) Репутация: 0 |
Как в дизайнере создать кнопку которая бы сохраняла свою квадратную форму при растягивании? Если можно то пример сразу.
|
|
|
igor_bogomolov |
20.1.2011, 11:13
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
|
|
|
Rocky |
20.1.2011, 12:45
Сообщение
#3
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
в дизайнере никак. А вообще, нужно наследоваться от кнопки и переопределять QWidget::heightForWidth
Еще думаю можно поставить eventFilter, ловить когда будет ресайз, и ставить кнопке setFixedSize(...) или setGeometry(...) |
|
|
igor_bogomolov |
20.1.2011, 13:00
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Rocky, говоришь ты все правильно, вот только в реальности по нормальному решить эту задачу мне так и не удалось. Компоновщики не правильно реагируют на подобные виджеты. Единственный путь который я здесь вижу, это создавать собственный компановщик
|
|
|
Rocky |
20.1.2011, 13:28
Сообщение
#5
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
Кстати да, припоминаю.. Как-то нужно было сделать по 8 квадратных виджетов справа и слева от главной формы. А по середине еще много всяких виджетов было.... Затык был на несколько дней, потому что от ресайза одних виджетов, зависело положение других... И ресайз/лэйаут происходил черте как.... Каким-то образом я сделал чтоб работало как надо, но код жутковатый был... да =)
|
|
|
VitAl2013 |
20.1.2011, 14:00
Сообщение
#6
|
Студент Группа: Участник Сообщений: 21 Регистрация: 3.1.2011 Пользователь №: 2321 Спасибо сказали: 1 раз(а) Репутация: 0 |
А нельзя ли сделать свой дочерний виджет-кнопку у которой прописать "высота = ширине" или это всё равно приведёт к неверной реакции компановщиков?
|
|
|
igor_bogomolov |
20.1.2011, 14:10
Сообщение
#7
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
VitAl2013, проблема не в том что бы сделать кнопку квадратной. Это запросто (но не в дизайнере (хотя и там тоже можно, но только фиксированного размера)). Проблемы возникнут при ресайзе такой формы. Между виджетами будут появляться большие зазоры, что очень портит интерфейс. Если это не так страшно, то делай как сказал Rocky,
нужно наследоваться от кнопки и переопределять QWidget::heightForWidth и выставляй там height = width
|
|
|
VitAl2013 |
20.1.2011, 14:39
Сообщение
#8
|
Студент Группа: Участник Сообщений: 21 Регистрация: 3.1.2011 Пользователь №: 2321 Спасибо сказали: 1 раз(а) Репутация: 0 |
Хорошо буду рыть. Но я нуб (чайник) так что буду делать это долго. Хотелось бы пример готовый.
Наследоваться - это как? Создавать объект наследник класса? |
|
|
Rocky |
20.1.2011, 14:47
Сообщение
#9
|
Старейший участник Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: 7 |
да.
Но лучче почитать хотя бы что-нибудь о С++ в таком случае. Что такое классы, наследование и пр. |
|
|
VitAl2013 |
20.1.2011, 16:50
Сообщение
#10
|
Студент Группа: Участник Сообщений: 21 Регистрация: 3.1.2011 Пользователь №: 2321 Спасибо сказали: 1 раз(а) Репутация: 0 |
Что нибудь я читал и представления имею... Практики мало. Тем более в контексте Qt, что это значит и как реализуется я не понимаю.
|
|
|
Текстовая версия | Сейчас: 15.1.2025, 14:17 |