crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как создать квадратную кнопку?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
igor_bogomolov Дата 20.1.2011, 17:05
  http://www.crossplatform.ru/node/227
VitAl2013 Дата 20.1.2011, 16:50
  Что нибудь я читал и представления имею... Практики мало. Тем более в контексте Qt, что это значит и как реализуется я не понимаю.
Rocky Дата 20.1.2011, 14:47
  да.

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

Еще думаю можно поставить eventFilter, ловить когда будет ресайз, и ставить кнопке setFixedSize(...) или setGeometry(...)
igor_bogomolov Дата 20.1.2011, 11:13
 
Цитата(VitAl2013 @ 20.1.2011, 10:46) *
Как в дизайнере создать кнопку которая бы сохраняла свою квадратную форму при растягивании? Если можно то пример сразу.
к сожалению ни как. Этого и в коде не так просто добиться :(
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 9:13