先介绍一下设置方法
// index项 设置为不可选择,index代表第几项,0 代表不可选(个人理解:QVariant::Invalid),-1为可以(个人理解:代表设置失败,恢复默认)
ui->combox->setItemData(index, QVariant(0), Qt::UserRole - 1);
// index项 设置背景置灰
ui->combox->setItemData(index, QBrush(QColor(192,192,192)), Qt::BackgroundRole);
// index项 设置字体黑色
ui->combox->setItemData(index, QBrush(QColor(Qt::black)), Qt::ForegroundRole);
// Linux下设置控件样式没有效果的解决方案
ui->combox->setStyleSheet("QComboBox{combobox-popup:0;}");
下面介绍一下ItemDataRole
(即上述第三项)
一般用途的角色(和相关的类型)有:
常数 | 值 | 描述 |
---|---|---|
Qt::DisplayRole | 0 | 以文本形式呈现的关键数据。(QString) |
Qt::DecorationRole | 1 | 将以图标形式呈现为装饰的数据。(QColor, QIcon或QPixmap) |
Qt::EditRole | 2 | 以适合在编辑器中编辑的形式出现的数据。(QString) |
Qt::ToolTipRole | 3 | 在项目的工具提示中显示的数据。(QString) |
Qt::StatusTipRole | 4 | 状态栏中显示的数据。(QString) |
Qt::WhatsThisRole | 5 | 在“What’s This?”模式下显示的数据。(QString) |
Qt::SizeHintRole | 13 | 将提供给视图的项的大小提示。(QSize) |
描述外观和元数据(与相关类型):
常数 | 值 | 描述 |
---|---|---|
Qt::FontRole | 6 | 用默认委托呈现的项目所用的字体。(QFont) |
Qt::TextAlignmentRole | 7 | 使用默认委托呈现的项目的文本对齐。(Qt::Alignment) |
Qt::BackgroundRole | 8 | 用于用默认委托呈现的项目的背景画笔。(QBrush) |
Qt::BackgroundColorRole | 8 | 这个角色已经过时了。使用BackgroundRole代替。 |
Qt::ForegroundRole | 9 | 前景色刷(通常是文本颜色),用于用默认的委托呈现的项目。(QBrush) |
Qt::TextColorRole | 9 | 这个角色已经过时了。使用ForegroundRole代替。 |
Qt::CheckStateRole | 10 | 此角色用于获取项的选中状态。(Qt::CheckState) |
Qt::InitialSortOrderRole | 14 | 此角色用于获取头视图部分的初始排序顺序。(Qt::SortOrder)。Qt 4.8中引入了这个角色。 |
可访问性角色(与相关类型):
常数 | 值 | 描述 |
---|---|---|
Qt::AccessibleTextRole | 11 | 可访问性扩展和插件(如屏幕阅读器)所使用的文本。(QString) |
Qt::AccessibleDescriptionRole | 12 | 用于可访问性目的的项目描述。(QString) |
用户角色:
常数 | 值 | 描述 |
---|---|---|
Qt::UserRole | 0x0100 | 可用于特定于应用程序目的的第一个角色。对于用户角色,由开发人员决定使用哪种类型,并确保组件在访问和设置数据时使用正确的类型。 |