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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Изменение "внешности" QRadioButton  (Прочитано 7238 раз)
AlexFAV
Гость
« : Декабрь 01, 2010, 16:09 »

Здравствуйте!
Мне нужно сделать группу QRadioButton (или любых других кнопок) так, чтобы получилось что-то вроде этого:

Главное - это зеленая лампочка вместо точки. Остальное (границы, квадратная форма лампочки) - вторично.
Подскажите, пожалуйста, как это проще сделать.

P.S.: еще вопрос - как сделать QRadioButton такими (подозреваю, что для этого нужно вызвать какой-то один метод, но вот какой?):
« Последнее редактирование: Декабрь 01, 2010, 16:31 от AlexFAV » Записан
whirlwind
Гость
« Ответ #1 : Декабрь 01, 2010, 16:52 »

верхней картинки не видно

на нижней -- http://doc.qt.nokia.com/4.7/qmotifstyle.html

в принципе, изменить способ отрисовки радиобаттона можно, создав собственный наследник QStyle (вот типа как здесь http://doc.qt.nokia.com/4.7/qstyle.html#creating-a-custom-style),
Записан
CL0NE
Гость
« Ответ #2 : Декабрь 01, 2010, 17:24 »

http://doc.qt.nokia.com/4.7/stylesheet-reference.html
Записан
AlexFAV
Гость
« Ответ #3 : Декабрь 01, 2010, 18:46 »

Спасибо за ответы.


Как раз то, что надо. Вот только не получилось. У меня Qt Creator 1.3.0 основан на Qt 4.6.0 - возможно в нем еще не реализовано? Или я что-то делаю не так...

Вот код:
Код:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    a.setStyleSheet("QRadioButton::indicator { width: 10px; height: 10px;}");
    a.setStyleSheet("QRadioButton::indicator::checked { image: url(:/images/radiobutton_checked.png); }");
    a.setStyleSheet("QRadioButton::indicator::unchecked { image: url(:/images/radiobutton_unchecked.png); }");
    MainWindow w;
    w.setWindowState( Qt::WindowFullScreen );
    w.show();
    return a.exec();
}

Вместо "radiobutton_checked.png" - стандартный индикатор, вместо "radiobutton_unchecked.png" - пустота. Непонимающий
Записан
crossly
Гость
« Ответ #4 : Декабрь 01, 2010, 19:51 »

а что в файле ресурсов??
Записан
AlexFAV
Гость
« Ответ #5 : Декабрь 01, 2010, 20:22 »

а что в файле ресурсов??
Я и не знал, что такое файл ресурсов  В замешательстве Спасибо - теперь "radiobutton_unchecked.png" отрисовывается, однако вместо "radiobutton_checked.png" - по-прежнему стандартный индикатор... Причем, если поменять в коде местами эти 2 строки, ситуация поменяется на противоположную. Видимо, нужно как-то их объединить, но как... Непонимающий
Записан
BRE
Гость
« Ответ #6 : Декабрь 01, 2010, 20:24 »

Видимо, нужно как-то их объединить, но как... Непонимающий
Точнее это нужно устанавливать одним вызовом setStyleSheet.
Записан
AlexFAV
Гость
« Ответ #7 : Декабрь 01, 2010, 20:39 »

BRE, в этом-то и был вопрос: как это сделать? Я пробовал - не получилось. Сейчас попробовал еще раз - и все получилось!!! Всем огромное спасибо - ВОПРОС РЕШЕН.
Код:
    a.setStyleSheet( "QRadioButton::indicator { width: 10px; height: 10px;}"
                     "QRadioButton::indicator::unchecked { image: url(:/images/radiobutton_unchecked.png); }"
                     "QRadioButton::indicator::checked { image: url(:/images/radiobutton_checked.png); }"
                   );
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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