gpt4 book ai didi

c++ - 我的代表不显示复选框

转载 作者:行者123 更新时间:2023-11-28 08:08:19 25 4
gpt4 key购买 nike

伙计们,我已经基于 QStyledItemDelegate 实现了我的委托(delegate)类,但我遇到的问题是它没有在 listView 中显示的文本旁边显示复选框。

在我使用我的委托(delegate)之前,我已经在我的 listView 中显示了这些复选框,所以我知道问题出在这个委托(delegate)类中。
有什么想法吗?

编辑

void Display_Delegate::paint( QPainter* painter,
const QStyleOptionViewItem& option,
const QModelIndex &index) const
{
QString model_data = index.data().toString();
QFontMetrics metrics = view_->fontMetrics();
int view_width = view_->width();
auto modified_str = adjust_text(metrics,model_data,view_width);//this just makes the string to fit into view, don't bother about it.
QStyleOptionViewItemV4 style_option = option;
initStyleOption(&style_option,index);
QPalette::ColorGroup color_group = style_option.state & QStyle::State_Selected ? QPalette::Active : QPalette::Inactive;
if (style_option.state & QStyle::State_Selected)
{
// painter->setPen(style_option.palette.color(color_group, QPalette::Highlight));
painter->setBackgroundMode(Qt::OpaqueMode);

QColor color(148,231,245,100);
painter->setBackground(QBrush(color));
}
else
{
painter->setPen(style_option.palette.color(color_group, QPalette::Text));
}

painter->drawText(option.rect,modified_str);
}

最佳答案

Qt::CheckState QStyleOptionViewItemV4::checkState

如果此 View 项是可检查的,即 ViewItemFeature::HasCheckIndicator 为 true,则 checkState 如果该项被检查则为 true;否则为假。

我在这些方法中发现了这个关于检查指示器的相当模糊的引用。它说如果你想让这个项目“可检查”然后设置这个 style option .所以尝试这样的事情:

style_option.ViewItemFeatures = QStyleOptionViewItemV2::HasCheckIndicator;

关于c++ - 我的代表不显示复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9750586/

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