Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 29
1

Не меняется палитра виджета QPushButton

25.02.2016, 18:27. Показов 1701. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Хочу выяснить, почему не работает вот этот код:
C++ (Qt)
1
2
3
4
5
6
7
8
void MyButton::mousePressEvent(QMouseEvent *)
{
    QPalette p;
 
    p.setColor(this->backgroundRole(),Qt::red);
    this->setPalette(p);
 
}
Небольшие комментарии. MyButton - класс, унаследованный от QPushButton
Переопределил событие нажатие мыши
Написал код с QMessageBox , реакция на нажатие работает
Вопрос: почему не хочет работать код, написанный выше! Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2016, 18:27
Ответы с готовыми решениями:

Как навести мышку на x,y внутри виджета относительно 0,0 виджета (левого верхнего угла виджета)?
Как навести мышку на x,y внутри виджета относительно 0,0 этого виджета (левого верхнего угла...

Не меняется размер виджета под размер лейаута
Здравствуйте! Есть такая проблема. Пытаюсь сделать машину состояний для приложения. Машина...

Как добраться до виджета, который находится внутри другого виджета?
Есть QStackWidget, внутри которого на одной из страниц-виджетов находится QTabWidget....

Почему заголовок виджета показывается ниже чем текст виджета
Создал зону виджетов. Создал шорткод. Шорткод вставляю в текстовый виджет. Заголовок виджета...

9
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.02.2016, 21:13 2
1) Это нужно делать через сигналы-слоты, а не наследованием.
2) Правильный код:
C++ (Qt)
1
2
3
QPalette p = palette();
p.setColor(QPalette::Button, Qt::red);
setPalette(p);
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.02.2016, 21:14 3
1) Это нужно делать через сигналы-слоты, а не наследованием.
2) Правильный код:
C++ (Qt)
1
2
3
QPalette p = palette();
p.setColor(QPalette::Button, Qt::red);
setPalette(p);
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 29
25.02.2016, 21:36  [ТС] 4
Решил следующим образом!
C++ (Qt)
1
2
3
4
5
void MyButton::mousePressEvent(QMouseEvent *)
{
 
  this->setStyleSheet("background-color:blue;");
}
В связи с этим такой вопрос: почему нельзя PushButton установить палитру, как ни пробовал, это же вроде как обычный QWidget...Тот же самый код работает на QWidget , но не работает на QPushButton! Этому есть какое-то объяснение?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.02.2016, 22:06 5
Почитайте доку QPalette. Кнопка не виджет.
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 29
25.02.2016, 23:21  [ТС] 6
Тогда для чего в QPushButton используется метод setPalette()?
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.02.2016, 23:48 7
Цитата Сообщение от AlexXXX_96 Посмотреть сообщение
Тогда для чего в QPushButton используется метод setPalette()?
Цитата Сообщение от RazrFalcon Посмотреть сообщение
Почитайте доку QPalette.
Еще вопросы?
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 29
25.02.2016, 23:51  [ТС] 8
Почему при переопределении события QPaintEvent изображение кнопки исчезает...
C++ (Qt)
1
2
3
4
void MyButton::paintEvent(QPaintEvent *)
{
    return;
}
0
1403 / 1260 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
25.02.2016, 23:53 9
1 вопрос - 1 тема
0
0 / 0 / 0
Регистрация: 10.02.2016
Сообщений: 29
25.02.2016, 23:53  [ТС] 10
C++ (Qt)
1
2
3
4
void MyButton::paintEvent(QPaintEvent *)
{
    this->setStyleSheet("background-color:blue;");
}

Код не выполняется!
0
25.02.2016, 23:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2016, 23:53
Помогаю со студенческими работами здесь

Чтение URL адресса из окна виджета и открытие его браузером при нажатии кнопки виджета
#Как считать url со строки ввода в виджете что бы потом при нажатии кнопки виджета открыть этот...

Вызов одного виджета из другого виджета
добрый день, есть 2 формы, сделанные в дизайнере. По нажатию на кнопку из формы 1 хочу чтобы...

Перебиваются стили виджета Nav::widget при подключении виджета \yii\jui\Dialog::widget
Добрый день. Возникла следующяя проблема при подключении виджета \yii\jui\Dialog::widget в yii2 ...

Не меняется картинка image в форме, один раз меняется, потом нет
Не меняется картинка image в форме, один раз меняется, потом нет. Запускаю из другого потока,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru