您的位置:首页 > 编程语言 > Qt开发

qt model 中的角色 role Qt::CheckStateRole角色

2015-10-01 07:46 2561 查看
model中的每一个数据元素都有一个modelIndex和一套角色role。

model中的角色,role有多个,但是常用的就几个。 这些角色可以保存任意值,角色中可用保持QVariant类型的值。

最常用的是Qt::DisplayRole和Qt::EditRole角色。

这两个角色是用于显示和编辑的角色。

还有几个常用的角色是用来控制 基本显示属性的。

比如:

Qt:: FontRole,控制显示的字体。

Qt::TextAlignmentRole,控制元素 显示文字的对齐方式的

Qt::TextColorRole,控制显示文字颜色的。

Qt::BackgroundColorRole,控制背景颜色的。

Qt::CheckStateRole也是qt中的角色, 当flag()函数中,设置某一列具有Qt::CheckStateRole这种角色后,该列就会显示为一个CheckBox,

//允许用户编辑item,必须重写setData()函数

bool TradeTableModel::setData ( const QModelIndex & index, const QVariant & value, introle/* = Qt::EditRole */)

{

//允许用户编辑的只有3列 第一列CheckBox, 包裹数, 保价金额

if(role == Qt::CheckStateRole && index.column() == ORDER_ID)

{

//用户勾选 每行第一列的CheckBox

ORDER_LIST_STRUCT& orderData = m_OrderList[row];

orderData.m_bChecked = !orderData.m_bChecked;

//该行checkBox 勾选状态

emit ModelCheckBoxStateChanged(orderData.m_bChecked ? Qt::Checked : Qt::Unchecked);

emit layoutChanged();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: