Как скрыть кружок от переключателя и показать значок только в qt? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу, чтобы пользователь выбрал тему, которую он хочет применить к документу. Итак, я создал всплывающее диалоговое окно, которое имеет несколько тем, которые являются qradiobutton. Но я хочу отображать только значки и убирать круг из виджета.

Я попытался сделать видимым: скрыто для переключателя, но это не сработало.

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Если вы хотите настроить QRadioButton с помощью таблиц стилей, я предлагаю вам проверить справочную документацию: https://doc.qt.io/qt-5/stylesheet-reference.html#qradiobutton-widget

Вы также должны найти полезные примеры, приведенные в документации Qt, так как они показывают, как заменить индикатор проверки разными изображениями:

QRadioButton::indicator {
    width: 13px;
    height: 13px;
}

QRadioButton::indicator::unchecked {
    image: url(:/images/radiobutton_unchecked.png);
}

QRadioButton::indicator:unchecked:hover {
    image: url(:/images/radiobutton_unchecked_hover.png);
}

https://doc.qt.io/qt-5/stylesheet-examples.html#customizing-qradiobutton

Если вы сделаете это, вы можете просто использовать индикатор для отображения значка и оставить метку QRadioButton пустой.

Однако, я должен предупредить вас, в зависимости от того, какой QStyle вы используете, может случиться так, что использование таблиц стилей полностью разрушит стиль компонента. Общий пример: вы используете стиль, где кнопки имеют круглые углы, вы используете таблицы стилей для изменения шрифта кнопки, и в результате у кнопки больше нет круглых углов. Это вызвано несовместимостью между некоторым QStyle и механизмом таблиц стилей. Если вы не хотите создавать многоплатформенное приложение, это может не быть проблемой, поскольку вы будете использовать только один стиль, но если вы создаете многоплатформенное приложение, вы должны проверить все возможные стили, которые у вас могут быть на разных платформах. .

Итак, если вы хотите иметь QRadioButton без индикатора и не использовать таблицы стилей, вы можете сделать это в C ++ напрямую, создав подкласс QAbstractButton. Просто убедитесь, что вы установили класс autoExclusive, чтобы он вел себя как переключатель.

0 голосов
/ 11 июля 2019

ты бы попробовал это? (видимый => видимость)

input[type="radio"] {
   visibility: hidden;
}

или

input[type="radio"] {
   display: none;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...