gpt4 book ai didi

qt - 更改 QCheckBox 指示器矩形颜色

转载 作者:行者123 更新时间:2023-12-02 08:27:36 26 4
gpt4 key购买 nike

我正在尝试仅更改 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;
};

有什么建议么 ?

最佳答案

无需为此创建自定义委托(delegate)。您可以使用 stylesheets为了根据需要更改复选框或任何其他小部件的颜色。以下样式表将设置为灰色 3px复选框矩形的边框。

QCheckBox::indicator {
border: 3px solid #5A5A5A;
background: none;
}

为了设置样式表,您可以使用 Qt Designer setStylesheet 功能。

为了设置特定的颜色,以下所有内容均有效:
border: 3px solid #5A5A5A;
border: 3px solid red;
border: 3px solid rgb(255, 120, 100);
border: 3px solid rgba(255,120,100, 50); // For alpha transparency

关于qt - 更改 QCheckBox 指示器矩形颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com