enum ItemDataRole {
DisplayRole = 0,
DecorationRole = 1,
EditRole = 2,
ToolTipRole = 3,
StatusTipRole = 4,
WhatsThisRole = 5,
// Metadata
FontRole = 6,
TextAlignmentRole = 7,
BackgroundRole = 8,
ForegroundRole = 9,
CheckStateRole = 10,
// Accessibility
AccessibleTextRole = 11,
AccessibleDescriptionRole = 12,
// More general purpose
SizeHintRole = 13,
InitialSortOrderRole = 14,
// Internal UiLib roles. Start worrying when public roles go that high.
DisplayPropertyRole = 27,
DecorationPropertyRole = 28,
ToolTipPropertyRole = 29,
StatusTipPropertyRole = 30,
WhatsThisPropertyRole = 31,
// Reserved
UserRole = 0x0100
};每一个代表什么作用
在 Qt 中,QTreeWidgetItem::setData 等方法使用角色(role)来区分不同类型的数据,下面详细解释你给出的枚举中各个角色的作用:
显示相关角色
DisplayRole (0)
作用:用于存储要在视图中显示的文本。当 QTreeWidget 显示项目时,会从该角色获取文本并显示在相应的列中。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, DisplayRole, "Item Text");
DecorationRole (1)
作用:用于存储要在视图中显示的图标或装饰性元素。通常用于在项目文本旁边显示一个图标。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, DecorationRole, QIcon("icon.png"));
EditRole (2)
作用:用于存储可编辑的文本。当用户开始编辑项目时,视图会从该角色获取文本进行编辑,编辑完成后也会将新值存储到该角色。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, EditRole, "Editable Text");
ToolTipRole (3)
作用:用于存储项目的工具提示文本。当用户将鼠标悬停在项目上时,会显示该角色存储的文本。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, ToolTipRole, "This is a tooltip");
StatusTipRole (4)
作用:用于存储项目的状态栏提示文本。当用户将鼠标悬停在项目上时,该文本会显示在应用程序的状态栏中。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, StatusTipRole, "Status tip text");
WhatsThisRole (5)
作用:用于存储项目的 “这是什么” 帮助文本。当用户在应用程序中按下 Shift + F1 并点击项目时,会显示该角色存储的文本。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, WhatsThisRole, "This is a detailed description");
元数据相关角色
FontRole (6)
作用:用于存储项目文本的字体。可以设置项目文本的字体样式、大小等。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
QFont font;
font.setBold(true);
item->setData(0, FontRole, font);
TextAlignmentRole (7)
作用:用于存储项目文本的对齐方式。可以设置文本在项目中的水平和垂直对齐方式。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, TextAlignmentRole, Qt::AlignCenter);
BackgroundRole (8)
作用:用于存储项目的背景画刷。可以设置项目的背景颜色或图案。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, BackgroundRole, QBrush(Qt::red));
ForegroundRole (9)
作用:用于存储项目的前景画刷,通常用于设置项目文本的颜色。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, ForegroundRole, QBrush(Qt::white));
CheckStateRole (10)
作用:用于存储项目的复选框状态。可以设置项目的复选框为选中、未选中或部分选中状态。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, CheckStateRole, Qt::Checked);
无障碍访问相关角色
AccessibleTextRole (11)
作用:用于存储项目的无障碍文本,供屏幕阅读器等辅助设备使用。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, AccessibleTextRole, "Accessible text for this item");
AccessibleDescriptionRole (12)
作用:用于存储项目的无障碍描述,供屏幕阅读器等辅助设备使用,提供更详细的信息。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, AccessibleDescriptionRole, "Detailed accessible description");
通用目的角色
SizeHintRole (13)
作用:用于存储项目的大小提示。可以指定项目在视图中显示的推荐大小。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, SizeHintRole, QSize(100, 20));
InitialSortOrderRole (14)
作用:用于存储项目的初始排序顺序。可以指定项目在排序时的初始顺序。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, InitialSortOrderRole, Qt::AscendingOrder);
内部 UiLib 角色
DisplayPropertyRole (27)
作用:通常用于内部 UiLib 相关的显示属性,具体用途可能因 UiLib 实现而异。
DecorationPropertyRole (28)
作用:通常用于内部 UiLib 相关的装饰属性,具体用途可能因 UiLib 实现而异。
ToolTipPropertyRole (29)
作用:通常用于内部 UiLib 相关的工具提示属性,具体用途可能因 UiLib 实现而异。
StatusTipPropertyRole (30)
作用:通常用于内部 UiLib 相关的状态栏提示属性,具体用途可能因 UiLib 实现而异。
WhatsThisPropertyRole (31)
作用:通常用于内部 UiLib 相关的 “这是什么” 帮助属性,具体用途可能因 UiLib 实现而异。
用户自定义角色
UserRole (0x0100)
作用:用户可以使用该角色及更高的角色来存储自定义的数据。例如,你可以使用 UserRole 来存储与项目相关的自定义 ID 或其他业务数据。
示例:
cpp
QTreeWidgetItem *item = new QTreeWidgetItem();
item->setData(0, UserRole, 123);
这些角色提供了一种灵活的方式来存储和管理与 QTreeWidgetItem 相关的不同类型的数据,使得开发者可以根据需要定制项目的显示和行为。
QTreeWidgetItem的item->setData(0, DisplayRole, “Item Text“);的DisplayRole
最新推荐文章于 2025-04-07 14:18:57 发布