项目一:
源码分析:
void CustomizedItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{if(2 == lumn()){const int Delta = 4;int x = () + Delta;int y = () + Delta;int width = width() - 2*Delta;int height = height() - 2*Delta;int progress = index.data(Qt::DisplayRole).toInt();QStyleOptionProgressBar progressBar;progressBar.minimum = 0;progressBar.maximum = 100;progressBar.progress = = QRect(x, y, width, height);Visible = Alignment = Qt:: = QString("%1%").arg(progress);QApplication::style()->drawControl(QStyle::CE_ProgressBar, &progressBar, painter);}else{QItemDelegate::paint(painter, option, index);}
}bool CustomizedItemDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
{bool ret = true;if(QEvent::MouseButtonDblClick != event->type()){ret = QItemDelegate::editorEvent(event, model, option, index);}return ret;
}
项目二:
源码分析:
void CustomizedItemDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const
{if(QVariant::Bool == index.data(Qt::DisplayRole).type()){QStyleOptionButton check;check.state = index.data().toBool() ? QStyle::State_On : QStyle::State_Off;check.state |= QStyle::State_ = ;() + width()/2 - 6);QApplication::style()->drawControl(QStyle::CE_CheckBox, &check, painter);}else {QItemDelegate::paint(painter, option, index);}
}bool CustomizedItemDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
{bool ret = true;qDebug() << "CustomizedItemDelegate::editorEvent";if(QVariant::Bool == index.data().type()){QMouseEvent* mouse = dynamic_cast<QMouseEvent*>(event);if( (NULL != mouse) && (QEvent::MouseButtonPress == mouse->type()) && (ains(mouse->pos())) ){model->setData(index, !index.data().toBool(), Qt::DisplayRole);}}else{ret = QItemDelegate::editorEvent(event, model, option, index);}return ret;
}
源码链接(总共2个):DelegateDeep.rar-QT文档类资源-CSDN下载
本文发布于:2024-01-31 03:26:39,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170664280025030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |