Я пытаюсь изменить только цвет прямоугольника индикатора QCheckBox
.Изменение цвета прямоугольника индикатора QCheckBox
В настоящее время мне удается нарисовать правую и нижнюю границу прямоугольника. Возможно, я здесь что-то не так.
Вот мой код:
CheckBoxWidget.cpp
CheckBoxWidget::CheckBoxWidget(QObject *poParent)
: QItemDelegate(poParent)
{
}
void CheckBoxWidget::drawCheck(QPainter *painter,
const QStyleOptionViewItem &option,
const QRect & rect,
Qt::CheckState state) const
{
QRect oCheckBoxRect =
QApplication::style()->subElementRect(QStyle::SE_CheckBoxIndicator, &option);
painter->setPen(Qt::white);
painter->drawRect(oCheckBoxRect);
QItemDelegate::drawCheck(painter, option, oCheckBoxRect, state);
}
CheckBoxWidget.h
class CheckBoxWidget : public QItemDelegate
{
Q_OBJECT
public:
CheckBoxWidget(QObject *poParent = 0);
virtual ~CheckBoxWidget();
protected:
virtual void drawCheck(QPainter *painter,
const QStyleOptionViewItem &option,
const QRect &,
Qt::CheckState state) const;
};
Есть предложения?
Проблема такого подхода заключается в том, что он меняет весь облик флажком, а не только цвет границы в соответствии с просьбой. При настройке пользовательской таблицы стилей на элементах Qt вам необходимо указать стиль для каждой части элемента. –
К сожалению такой же вопрос как выше. Я установил для фона qcheckbox disabeld значение серого, но я больше не вижу остальную часть флажка. Как я могу пометить тик? То же самое касается QRadioButton. Изменение стиля там делает квадратную кнопку радио: - (Любые идеи, где можно найти информацию о стилизации этих кнопок? – Dariusz
Опираясь на ту же проблему сейчас ... Есть ли прогресс в этом вопросе? – nostradamus