Название: Динамический цвет кнопки. Отправлено: Brono от Август 04, 2016, 19:47 Доброго времени суток!
Проблема такова: надо сделать кнопку QPushButton, которая бы при нажатии выдавала диалог QColorDialog, а когда пользователь выбрал цвет, кнопка окрашивается в выбранный цвет и текст на кнопке меняется на "#aarrggbb". Со сменой текста проблем не возникает, но как сделать смену цвета? Притом важно, чтобы цвет кнопки оставался постоянным во всех трёх состояниях. Смена CSS делает так, что кнопка становится нужного цвета только в нажатом состоянии. Название: Re: Динанамический цвет кнопки. Отправлено: Alex Custov от Август 04, 2016, 19:52 Видимо нужно показать этот CSS?
Название: Моя попытка реализации (которая не работает) Отправлено: Brono от Август 04, 2016, 20:29 Вот слот диалога, в котором я попытался это сделать:
Код
Оно не работает. Точнее работает, но цветной кнопка становится только в зажатом состоянии. Название: Re: Динамический цвет кнопки. Отправлено: VPS от Август 04, 2016, 22:24 Можно использовать палитру, например так:
Код
Название: Re: Динамический цвет кнопки. Отправлено: Brono от Август 05, 2016, 23:12 Решение с палитрами не сработало.
Название: Re: Динамический цвет кнопки. Отправлено: Racheengel от Август 05, 2016, 23:36 https://github.com/sintegrial/Qt5ExtLib/tree/master/src/qtgradienteditor
там есть QtColorButton Название: Re: Динамический цвет кнопки. Отправлено: Bepec от Август 05, 2016, 23:39 1) ";" в QSSse поставьте. (ну просто положено там быть, хотя на работоспособность не влияет).
2) используйте QString QColor::name(NameFormat format) const для получения строки цвета. Название: Re: Динамический цвет кнопки. Отправлено: VPS от Август 05, 2016, 23:56 Решение с палитрами не сработало. А так:Код
Код
Код
Название: Re: Динамический цвет кнопки. Отправлено: Brono от Август 06, 2016, 00:51 А так: ... Тоже не работает. Версия Qt -- 5.3 GCC, платформа -- Ubuntu 14.04 32bit. UPD: Попробовал на Win7+MinGW+Qt 5.6|5.7, не вышло. Название: Re: Динамический цвет кнопки. Отправлено: Brono от Август 06, 2016, 01:19 используйте QString QColor::name(NameFormat format) const для получения строки цвета Спасибо, не знал. Название: Re: Динамический цвет кнопки. Отправлено: VPS от Август 06, 2016, 09:25 А так: ... Тоже не работает. Версия Qt -- 5.3 GCC, платформа -- Ubuntu 14.04 32bit. UPD: Попробовал на Win7+MinGW+Qt 5.6|5.7, не вышло. Проверял на Windows 7 + Qt4.8.7 (Qt 5.6). Цвет кнопки исправно меняется. ??? Или может я не понял суть вопроса? Название: Re: Динамический цвет кнопки. Отправлено: Brono от Август 06, 2016, 20:10 Проверял на Windows 7 + Qt4.8.7 (Qt 5.6). Возможно, я должен добавить, что в том виде, в котором здесь была реализация, оно не сработало. Ругалось на отсутствие QPushButton, QVBoxLayout и остальных стандартных виджетов. В заголовочном файле приишлось поменять <QWidget> на <QtWidgets>. И оно заработало. Название: Re: Динамический цвет кнопки. Отправлено: lit-uriy от Август 06, 2016, 20:42 Оно НЕ "Не сработало", а не компилировалось. Это принципиально разные ситуации
|