Название: динамическая смена цвета с использованием qss Отправлено: qt_newer от Июль 31, 2014, 13:14 Например, есть кнопка при нажатии на кот. ее цвет должен поменяться на зеленый, при повторном нажатии вернуться к исходному.
Использую такой код: btn->setStyleSheet("background-color:green"); & back: btn->setStyleSheet(""); Как сделать то же самое с использованием qss (чтобы при изменении дизайна не приходилось долго рыться в коде)? Спасибо заранее! Название: Re: динамическая смена цвета с использованием qss Отправлено: Johnik от Июль 31, 2014, 13:24 выдернул из своего приложения:
Код: QToolButton, QPushButton { Название: Re: динамическая смена цвета с использованием qss Отправлено: qt_newer от Август 01, 2014, 12:40 Спасибо! Очень помогли!
Но есть еще одна проблема- надо получить: текст х (иконка чекбокса) длинный_текст х текст2 х делаю: QVBoxLayout *main_layout = new QVBoxLayout; QCheckBox *cb = new QCheckBox(tr("текст"), this); cb->setLayoutDirection(Qt::RightToLeft); main_layout->addWidget(cb); setLayout(main_layout); и пишу в qss: QCheckBox { text-align: left; color: green; /* задача поменять цвет текста при переключении */ background-color: grey; } QCheckBox:checked { color: red; } QCheckBox::indicator:unchecked { image: url(:/images/unchecked.png); } QCheckBox::indicator:checked { image: url(:/images/checked.png); } В результате: "text-align: left" НЕ РАБОТАЕТ (хотя, элемент чекбокса растянут на всю ширину окна приложения), и результат выглядит как: текст х (иконка чекбокса) длинный_текст х текст2 х Название: Re: динамическая смена цвета с использованием qss Отправлено: Johnik от Август 01, 2014, 13:40 попробовал различные варианты, тоже не получается.
как вариант, убрать текст у QCheckBox, слева разместить QLabel и воспользовать setBuddy() у QLabel. Название: Re: динамическая смена цвета с использованием qss Отправлено: qt_newer от Август 01, 2014, 15:05 а при этом как-то можно изменить цвет QLabel в qss ? (как это делалось для QCheckBox)
QCheckBox { color: green; /* задача поменять цвет текста при переключении */ } QCheckBox:checked { color: red; } Опять же, чтобы при изменении дизайна не приходилось долго рыться в коде Название: Re: динамическая смена цвета с использовани Отправлено: Johnik от Август 01, 2014, 22:29 Думаю без костыля не обойтись...
делаем стиль: Код
создаем объекты: QCheckBox (имя: "сheckBox") и для него партнера QLabel (имя: "checkBox_label") и еще пару: QCheckBox (имя: "сheckBox_2") и для него партнера QLabel (имя: "checkBox_2_label") h: Код cpp: Код
проверил, работает. |