Russian Qt Forum
Ноябрь 27, 2024, 16:08
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
"своя" кнопка
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: "своя" кнопка (Прочитано 14111 раз)
enola
Гость
"своя" кнопка
«
:
Сентябрь 19, 2006, 12:50 »
Есть потребность в создании собственной кнопки, почитал инфу по данной теме, понял что стандартный подход от Trolltech это создание собственного стиля. Нашел пример в Qt, но правда такой навернутый.
У меня есть две картинки кнопки - отжатое и нажатое состояние, нужно по ним сделать кнопку.
Может кто-нибудь маленький примерчик скинуть как делается этот стиль для кнопки, или ссылку. [/list]
Записан
BaltikS
Гость
"своя" кнопка
«
Ответ #1 :
Сентябрь 19, 2006, 18:53 »
А по-моему всё несложно...
1) Унаследываемся от QPushButton
2) В painEvent-е ставим условие if (isDown()) drawPixmap1(); else drawPixmap2().
P.S. Это для 3 QT, для 4 возможно название классов и методов отличается. Не помню просто...
Записан
QCasper
Гость
"своя" кнопка
«
Ответ #2 :
Сентябрь 19, 2006, 20:37 »
Цитата: "BaltikS"
А по-моему всё несложно...
1) Унаследываемся от QPushButton
2) В painEvent-е ставим условие if (isDown()) drawPixmap1(); else drawPixmap2().
P.S. Это для 3 QT, для 4 возможно название классов и методов отличается. Не помню просто...
для 4 точно также
Записан
enola
Гость
"своя" кнопка
«
Ответ #3 :
Сентябрь 20, 2006, 06:48 »
спасибо, щас попробуем
добавлено спустя 54 минуты:
получилось
правда возникли еще вопросы:
[list=1]
Для того, чтобы caption был нужно свои свойства определять?
Для картинки на кнопке тоже?
[/list:o]
Записан
C.H.
Гость
"своя" кнопка
«
Ответ #4 :
Сентябрь 20, 2006, 10:26 »
вот есть штука
http://www.trolltech.com/customers/coolapps/GUIArtist
в ней можно рисовать свои кнопки и не только...
Записан
enola
Гость
"своя" кнопка
«
Ответ #5 :
Сентябрь 20, 2006, 13:31 »
как с ней работать и где ее взять?
Записан
C.H.
Гость
"своя" кнопка
«
Ответ #6 :
Сентябрь 20, 2006, 13:45 »
брать тут
http://www.gui-artist.de/4.0.html?&L=7
но тока там демо-версия
Записан
enola
Гость
"своя" кнопка
«
Ответ #7 :
Сентябрь 20, 2006, 13:49 »
а зачем тогда предлагать если только демо версия?
Записан
C.H.
Гость
"своя" кнопка
«
Ответ #8 :
Сентябрь 20, 2006, 13:52 »
ну дык может кому-тои демки хватит - нариосвать одну кнопочку, а вообще глядеть надо!
Записан
enola
Гость
"своя" кнопка
«
Ответ #9 :
Сентябрь 20, 2006, 14:43 »
так мне и не сказали как иконку добавить и надпись?
Записан
BaltikS
Гость
"своя" кнопка
«
Ответ #10 :
Сентябрь 21, 2006, 06:35 »
Цитата: "enola"
так мне и не сказали как иконку добавить и надпись?
Ну это чуть чуть подумать надо было....
Иконка ..... drawPixmap(x,y, iconSet()->pixmap());
Текст ....drawText(x,y,align, text());
Координаты надеюсь сам посчитаешь :wink: ......
Записан
enola
Гость
"своя" кнопка
«
Ответ #11 :
Сентябрь 21, 2006, 06:44 »
до этого я и сам додумался, чай не тупой.
Думал может можно как-нибудь по-другому, ну если так, то уже сделал.
спасибо всем.
Записан
Sergey B.
Программист
Offline
Сообщений: 544
"своя" кнопка
«
Ответ #12 :
Сентябрь 22, 2006, 09:28 »
А кто нибудь пробовал свой стиль рисовать?
Картинки это хорошо, но вот если нужно много всего... тыж не будешь на каждый GUI элемент картинки искать...
А как нарисовать таблицу...
По типу артура, т.е. так как сами Trollи рисуют... Так сказать математически...
Записан
enola
Гость
"своя" кнопка
«
Ответ #13 :
Сентябрь 22, 2006, 10:33 »
Я хотел попробовать для кнопки нарисовать, но
BaltikS
предложил метод для paintEvent и мне хватило, а вообще тема очень интересная.
Записан
BaltikS
Гость
"своя" кнопка
«
Ответ #14 :
Сентябрь 22, 2006, 10:37 »
Если тебе нужна только кнопка, то стиль писать свой думаю бесмысленно, а если набор виджетов, то конечно проще стиль.
Sergey B. да и стиль я тоже рисовал. Там вроде как всё просто даже по-моему пример где то в Examples-ах валялся.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...