0
夥計們我根據QStyledItemDelegate
實現了我的委託類,我遇到的問題是它不顯示listView中顯示的文本旁邊的複選框。我的代表不顯示覆選框
在我使用我的委託之前,我在listView中顯示了這些複選框,所以我知道這個問題存在於這個委託類中。
有什麼想法?
EDIT
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);
}
我正在考慮一個高大的香蕉代基裏。你自己呢?哦,也許是一個有編程問題的人發佈代碼的夢想世界。 – 2012-03-17 14:08:18
@KerrekSB好的,我會在我的委託中發佈paint fnc的代碼,沒問題。你可能會認爲模型和代理模型是正確實現的(它們是,它們和dflt委託一起工作) – smallB 2012-03-17 14:27:48
@KerrekSB有趣的是人們如何快速給予+1,即使這個+1是在我實際編輯我的OP之後給出的,你覺得呢? – smallB 2012-03-17 14:55:52