Russian Qt Forum
Май 18, 2024, 14:12 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QT Creator: как изменить цвет текста RadioButton?  (Прочитано 10027 раз)
Сергей85
Гость
« : Май 02, 2017, 20:56 »

Через интерфейс просто: свойствО WindowText Palette. Но как на него программно выйти?
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 371


Просмотр профиля
« Ответ #1 : Май 02, 2017, 21:28 »

Например так

Код:
radio_button->setStyleSheet("QRadioButton { color: red; }");
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #2 : Май 02, 2017, 21:37 »

https://doc.qt.io/qt-5/qwidget.html#palette-prop
Записан
Сергей85
Гость
« Ответ #3 : Май 04, 2017, 19:22 »

Например так

Код:
radio_button->setStyleSheet("QRadioButton { color: red; }");

Это убивает другие настройки форматирования радиобаттона (размер шрифта в частности). Просто "color: red;" делает то же самое. Хотя цвет радиобаттона меняется, да. Косяк на косяке в этой среде - как же исправить этот новый косяк?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4730



Просмотр профиля WWW
« Ответ #4 : Май 04, 2017, 19:36 »

стиль шрифта можно тоже через qss прописать
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
billy4685
Крякер
****
Offline Offline

Сообщений: 306


Просмотр профиля
« Ответ #5 : Май 05, 2017, 08:42 »

Есть и другое решение. Записать в переменную QString уже имеющий StyleSheet для QRadioButton, и потом прибавить к нему новый цвет текста.
К примеру этот кусок текста у меня сработал.
Код:
ui->radioButton->setStyleSheet("QRadioButton{background: yellow; color: green;}");
QString str = ui->radioButton->styleSheet();
ui->radioButton->setStyleSheet(str + "QRadioButton{color: red;}");

Не знаю правда поможет ли это Вам.
« Последнее редактирование: Май 05, 2017, 08:46 от billy4685 » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #6 : Май 05, 2017, 09:20 »

При редактировании в QtCreator можно radiobutton заменить на HorizontalLayout, в который поместить radiobutton без надписи и label. Дважды тыкнув на label откроется редактор текста с форматированием. Связать кнопку и текст партнёрством(buddy) и сигнал/слотом по клику. Как сделать кликабельную надпись см. тут. Естественно, label на форме нужно повысить до clickablelabel
Записан
carrygun
Гость
« Ответ #7 : Май 05, 2017, 11:44 »

Вам уже предложили почитать документацию, в чем проблема то?

Код
C++ (Qt)
   QPalette p = radioButton->palette();
   p.setColor(QPalette::WindowText, Qt::red);
   radioButton->setPalette(p);
 
Записан
Сергей85
Гость
« Ответ #8 : Май 05, 2017, 17:05 »

Вам уже предложили почитать документацию, в чем проблема то?

Код
C++ (Qt)
   QPalette p = radioButton->palette();
   p.setColor(QPalette::WindowText, Qt::red);
   radioButton->setPalette(p);
 

Проблема в том, что любое действие в QT, которое в других языках занимает 1 строчку, занимает много строк и отнюдь не очевидных.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #9 : Май 05, 2017, 17:27 »

Проблема в нежелании читать документацию и использовать поисковик.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #10 : Май 05, 2017, 17:46 »

Проблема в том, что любое действие в QT, которое в других языках занимает 1 строчку, занимает много строк и отнюдь не очевидных.

Поверь мне, проблема не в этом.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 19.