![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
breeve |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Как сделать иконку на которую можно нажать? сделал вот так:
Но получается так что картинка немного глюченная, не прорисованная до конца как должна быть.. может есть какие-то другие варианты? В дальнейшем планируется изменять цвет иконки при нажатии.. |
|
|
lucifer_vrn |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 27.2.2009 Пользователь №: 580 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
breeve,
попробуй так:
|
|
|
breeve |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
breeve, попробуй так:
Не получается что-то.. Иконка слишком маленькая и видны рамки кнопки.. Необходимо чтобы кнопку саму видно не было, а только иконку.. либо сделать кнопку в форме иконки. В качестве примера - есть такие программы на linux - панельки с ярлычками(cairo-dock, awn). Нужно сделать что-то похожее.. Сообщение отредактировал breeve - 2.2.2010, 14:54 |
|
|
lucifer_vrn |
![]()
Сообщение
#4
|
Студент ![]() Группа: Участник Сообщений: 19 Регистрация: 27.2.2009 Пользователь №: 580 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
ну тогда создать класс унаследованный от QToolButton или QPushButton в нем переопределить paintEvent, оригинальный paintEvent не вызывать, а в нем с помощью QPainter::drawPixmap нарисовать иконку....
|
|
|
MoPDoBoPoT |
![]()
Сообщение
#5
|
Участник ![]() ![]() Группа: Участник Сообщений: 172 Регистрация: 7.5.2009 Из: Москва Пользователь №: 738 Спасибо сказали: 44 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
breeve |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
JuryS1806 |
![]()
Сообщение
#7
|
![]() Студент ![]() Группа: Участник Сообщений: 93 Регистрация: 21.10.2009 Из: Нижний Новгород Пользователь №: 1168 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Думаю только может помочь что троли прописали. только style sheets
Кстати в примерах mainwindow есть пример с рисованием виджетов там left.jpg, border.jpg как раз определяют style sheets. /название какое-то дерьмо у тролей ![]() QPushButton { border: 2px solid #8f8f91; border-radius: 6px; background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #f6f7fa, stop: 1 #dadbde); min-width: 80px; } QPushButton:pressed { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #dadbde, stop: 1 #f6f7fa); } QPushButton:flat { border: none; /* no border for a flat push button */ } QPushButton:default { border-color: navy; /* make the default button prominent */ } |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
style sheets. /название какое-то дерьмо у тролей весь трёп на эту тему переехал сюда
|
|
|
breeve |
![]()
Сообщение
#9
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Наследовал класс от pushbutton и переопределил методы рисования, наведения, нажатия и отпускания. Вот код:
Раскрывающийся текст Сообщение отредактировал breeve - 10.2.2010, 16:32 |
|
|
breeve |
![]()
Сообщение
#10
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Как не пробую не получается...
|
|
|
BRE |
![]()
Сообщение
#11
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
А почему не использовать стили, как посоветовал JuryS1806?
И класс новый создавать не нужно и внешний вид кнопки редактировать без перекомпиляции исходников. |
|
|
breeve |
![]()
Сообщение
#12
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
А почему не использовать стили, как посоветовал JuryS1806? И класс новый создавать не нужно и внешний вид кнопки редактировать без перекомпиляции исходников. А я пытался со стилями но что то я не нашел как картинкой заменить всю кнопку.. Посмотрел все возможности которые можно сделать с кнопкой.. Нашел только как менять картинку на кнопку-меню. Если нужно что-то простое: фон поменять, цвет текста и т.д. то выбор несомненно в пользу стилей, мне надо не много другое. Сообщение отредактировал breeve - 10.2.2010, 17:33 |
|
|
BRE |
![]()
Сообщение
#13
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
А про это читал/пробовал?
Для установки картинки:
Сообщение отредактировал Litkevich Yuriy - 10.2.2010, 19:46 |
|
|
breeve |
![]()
Сообщение
#14
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
А про это читал/пробовал? Спасибо, видимо не досмотрел. ![]() ![]() Сообщение отредактировал breeve - 11.2.2010, 18:59 |
|
|
breeve |
![]()
Сообщение
#15
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
появляется белый квадрат. Я даже заморочился и заснял приложение чтобы было ясно про какой квадрат, собственно говоря, идет речь) |
|
|
BRE |
![]()
Сообщение
#16
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Вот так попробуй:
QPushButton:focus { border: none; } А лучше покажи весь css-файл. |
|
|
breeve |
![]()
Сообщение
#17
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Вот так попробуй: Попробовал не получается.QPushButton:focus { border: none; } Цитата А лучше покажи весь css-файл. А у меня css код не в отдельном файле а вот так:
|
|
|
BRE |
![]()
Сообщение
#18
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
А вот так попробуй:
![]() QPushButton:focus { border-style: none; } |
|
|
breeve |
![]()
Сообщение
#19
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
BRE |
![]()
Сообщение
#20
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Тоже самое.. ![]() Вот смотри что у меня. (После загрузки файла расширение .txt убери)
Прикрепленные файлы
|
|
|
breeve |
![]()
Сообщение
#21
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
BRE |
![]()
Сообщение
#22
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Вот смотри что у меня. ![]() ![]() Это я дизайнере баловался, т.е. могу сбросить .ui и картинки. Пути до картинок не забудь откорректировать. Да, использовал дизайнер от Qt 4.6.1.
Прикрепленные файлы
|
|
|
breeve |
![]()
Сообщение
#23
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Это я дизайнере баловался, т.е. могу сбросить .ui и картинки. Пути до картинок не забудь откорректировать. Да, использовал дизайнер от Qt 4.6.1. я выдернул код из твоего .ui вот он: Раскрывающийся текст
![]() Сообщение отредактировал breeve - 12.2.2010, 10:03 |
|
|
BRE |
![]()
Сообщение
#24
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
я выдернул код из твоего .ui и вставил в свой и тот же самый белый квадрат.. Я так понял у тебя Mac? Возможно для этого стиля идут дополнительные настройки css для всего приложения. Посмотри раздел в assistant Qt Style Sheet Reference, на тему List Properties и попробуй поиграть с настройками, попробуй border-image: none А то сложно, что-то проверить, если у себя воспроизвести не получается. ![]() |
|
|
breeve |
![]()
Сообщение
#25
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Я так понял у тебя Mac? Возможно для этого стиля идут дополнительные настройки css для всего приложения. Как это у меня Mac? O_o.. Всмысле ты имеешь ввиду ОСь, или стиль тут какой-то? Если ОСь то у меня убунту. Если стиль то сам я его не выбирал, и стандартный там точно не маковский.Цитата А то сложно, что-то проверить, если у себя воспроизвести не получается. Вообщем написал все заново чтобы не было ничего лишнего. Вот тут код с картинками, для проверки. Никаких путей вроде менять не надо..
![]() Сообщение отредактировал breeve - 12.2.2010, 10:29
Прикрепленные файлы
|
|
|
BRE |
![]()
Сообщение
#26
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Как это у меня Mac? O_o.. Всмысле ты имеешь ввиду ОСь, или стиль тут какой-то? Если ОСь то у меня убунту. Если стиль то сам я его не выбирал, и стандартный там точно не маковский. Это я по декорации окна так подумал. ![]() Вообщем написал все заново чтобы не было ничего лишнего. Вот тут код с картинками, для проверки. Никаких путей вроде менять не надо.. А у меня нормально. ![]() Fedora 11 (x86_64)
Прикрепленные файлы
|
|
|
breeve |
![]()
Сообщение
#27
|
Участник ![]() ![]() Группа: Участник Сообщений: 188 Регистрация: 26.12.2009 Пользователь №: 1336 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
А у меня нормально. О_О Получается что у меня не работает а у всех остальных работает.. Непорядок.. Только вот одно но.. я все понимаю если бы у меня на всех кнопках в системе были эти квадратики.. Я бы подумал на оконный менеджер. Но как так получается что только то что делаю, так вознаградили)) ![]() Fedora 11 (x86_64) |
|
|
BRE |
![]()
Сообщение
#28
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
А у меня нормально. О_О Получается что у меня не работает а у всех остальных работает.. Непорядок.. Только вот одно но.. я все понимаю если бы у меня на всех кнопках в системе были эти квадратики.. Я бы подумал на оконный менеджер. Но как так получается что только то что делаю, так вознаградили))![]() Fedora 11 (x86_64) Да, собрал под Ubuntu. Такая же фигня как и у тебя. Кто-то (возможно это из-за Гнома) выделяет виджет в фокусе. Как это отключить в стилях пока не нашел. Посмотрю еще. Как костыль, можно устанавливать: bob->setFocusPolicy( Qt::NoFocus ); Тогда кнопка не будет получать фокус. |
|
|
Litkevich Yuriy |
![]()
Сообщение
#29
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
тему разделил: CommandLinkButton и StyleSheet
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.6.2025, 12:19 |