s
Dec. 25, 2019, 8:01 p.m.

QPushButton CSS

QPushButton

Добрый день!

Подскажите, пожалуйста, как реализовать смену цвета кнопки при ее удержании, а при отпускании должен вернуться изначальный цвет.
На данный момент, я лишь смог изменить ее цвет по нажатию, а изнчальный цвет по повторному нажатию:

  1. {
  2. ui->setupUi(this);
  3.  
  4. calbr = new QPushButton();
  5. }
  6. ....
  7.  
  8. calbr = static_cast<QPushButton*>(sender());
  9. int state = calbr->property("current_state").toInt();
  10.  
  11. if(state ==0)
  12. {
  13. calbr->setStyleSheet("background-image: url(:/pressed_btn/blocks/pressed btn/main calibration pressed.png)");
  14. calbr->setProperty("current_state", 1);
  15. }
  16. else
  17. {
  18. calbr->setStyleSheet("background-image: url(:/background/blocks/error.jpg)");
  19. calbr->setProperty("current_state", 0);
  20. }

Идея в том, чтобы при нажатии ее фон менялся на более светлый, для визуального удобства, в качестве фона использую отрисованные изображения.

Сасибо!

3

Do you like it? Share on social networks!

2
nayk1982
  • Dec. 26, 2019, 7:25 p.m.

Добрый день!
Насколько я помню, у QPushButton можно указать разные состояния один раз заполнив styleSheet, а не каждый раз при нажатии. Например в констукторе формы прописать:

  1. setStyleSheet(
  2. "QPushButton#buttonName { background: white; } "
  3. "QPushButton#buttonName:hover { background: yellow; } "
  4. "QPushButton#buttonName:pressed { background: red; } "
  5. );
  6.  
    s
    • Dec. 27, 2019, 6:33 p.m.
    • The answer was marked as a solution.

    Я уже сам решил проблему, добавив слот на состояние Released. Спасибо за ответ!

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • AK
        April 1, 2025, 11:41 a.m.
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        March 9, 2025, 9:02 p.m.
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        March 9, 2025, 4:14 p.m.
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
      • Evgenii Legotckoi
        Oct. 31, 2024, 11:37 p.m.
        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup