Название: "своя" кнопка Отправлено: enola от Сентябрь 19, 2006, 12:50 Есть потребность в создании собственной кнопки, почитал инфу по данной теме, понял что стандартный подход от Trolltech это создание собственного стиля. Нашел пример в Qt, но правда такой навернутый.
У меня есть две картинки кнопки - отжатое и нажатое состояние, нужно по ним сделать кнопку. Может кто-нибудь маленький примерчик скинуть как делается этот стиль для кнопки, или ссылку. [/list] Название: "своя" кнопка Отправлено: BaltikS от Сентябрь 19, 2006, 18:53 А по-моему всё несложно...
1) Унаследываемся от QPushButton 2) В painEvent-е ставим условие if (isDown()) drawPixmap1(); else drawPixmap2(). P.S. Это для 3 QT, для 4 возможно название классов и методов отличается. Не помню просто... Название: "своя" кнопка Отправлено: QCasper от Сентябрь 19, 2006, 20:37 Цитата: "BaltikS" А по-моему всё несложно... 1) Унаследываемся от QPushButton 2) В painEvent-е ставим условие if (isDown()) drawPixmap1(); else drawPixmap2(). P.S. Это для 3 QT, для 4 возможно название классов и методов отличается. Не помню просто... для 4 точно также Название: "своя" кнопка Отправлено: enola от Сентябрь 20, 2006, 06:48 спасибо, щас попробуем :)
добавлено спустя 54 минуты: получилось :) правда возникли еще вопросы: [list=1]
Название: "своя" кнопка Отправлено: C.H. от Сентябрь 20, 2006, 10:26 вот есть штука http://www.trolltech.com/customers/coolapps/GUIArtist в ней можно рисовать свои кнопки и не только...
Название: "своя" кнопка Отправлено: enola от Сентябрь 20, 2006, 13:31 как с ней работать и где ее взять?
Название: "своя" кнопка Отправлено: C.H. от Сентябрь 20, 2006, 13:45 брать тут http://www.gui-artist.de/4.0.html?&L=7
но тока там демо-версия :( Название: "своя" кнопка Отправлено: enola от Сентябрь 20, 2006, 13:49 а зачем тогда предлагать если только демо версия? :)
Название: "своя" кнопка Отправлено: C.H. от Сентябрь 20, 2006, 13:52 ну дык может кому-тои демки хватит - нариосвать одну кнопочку, а вообще глядеть надо!
Название: "своя" кнопка Отправлено: enola от Сентябрь 20, 2006, 14:43 так мне и не сказали как иконку добавить и надпись?
Название: "своя" кнопка Отправлено: BaltikS от Сентябрь 21, 2006, 06:35 Цитата: "enola" так мне и не сказали как иконку добавить и надпись? Ну это чуть чуть подумать надо было.... Иконка ..... drawPixmap(x,y, iconSet()->pixmap()); Текст ....drawText(x,y,align, text()); Координаты надеюсь сам посчитаешь :wink: ...... Название: "своя" кнопка Отправлено: enola от Сентябрь 21, 2006, 06:44 :) до этого я и сам додумался, чай не тупой.
Думал может можно как-нибудь по-другому, ну если так, то уже сделал. спасибо всем. Название: "своя" кнопка Отправлено: Sergey B. от Сентябрь 22, 2006, 09:28 А кто нибудь пробовал свой стиль рисовать?
Картинки это хорошо, но вот если нужно много всего... тыж не будешь на каждый GUI элемент картинки искать... А как нарисовать таблицу... По типу артура, т.е. так как сами Trollи рисуют... Так сказать математически... Название: "своя" кнопка Отправлено: enola от Сентябрь 22, 2006, 10:33 Я хотел попробовать для кнопки нарисовать, но BaltikS предложил метод для paintEvent и мне хватило, а вообще тема очень интересная.
Название: "своя" кнопка Отправлено: BaltikS от Сентябрь 22, 2006, 10:37 Если тебе нужна только кнопка, то стиль писать свой думаю бесмысленно, а если набор виджетов, то конечно проще стиль.
Sergey B. да и стиль я тоже рисовал. Там вроде как всё просто даже по-моему пример где то в Examples-ах валялся. Название: "своя" кнопка Отправлено: enola от Сентябрь 22, 2006, 11:18 А могешь пример скинуть если не жалко :)
Название: "своя" кнопка Отправлено: Sergey B. от Сентябрь 22, 2006, 12:22 Цитата: "enola" А могешь пример скинуть если не жалко :) +1 :D Название: "своя" кнопка Отправлено: BaltikS от Сентябрь 22, 2006, 19:12 Да не жалко в принципе, вот пример для 4 с исполняемым файлом....
Для 3 тоже сгодится с небольшими передлками http://www.baltiksoft.com/styles.rar Название: "своя" кнопка Отправлено: Dendy от Сентябрь 22, 2006, 19:39 Для того, чтобьІ переопределить стиль кнопки необязательно от неё наследоваться. Гораздо проще перехватить собьІтие. Так вьІ сможете переопределить стиль уже созданньІх кнопок, например в QMessageBox.
Также не нужно рисовать всю кнопку: надпись гораздо проще и функциональнее рисует стиль. Код:
|