网站首页 > 编程文章 正文
数据项角色的理解
数据项角色通俗来说就是数据项中保存的属性(如文本和图标)或者样式(字体和对齐方式)的类别,可以将其当做键-值对中的键,从而为对应的值赋值。
QStandardItemModel中的每一个数据项为QStandardItem。举个例子,人有很多属性,如性别:男;身高:180cm;体重:80kg;民族:藏族等,构建Person对象时可能使用struct来存储。
QStandardItem中也有很多属性可供设置,如设置显示文本(DisplayRole)、提示(ToolTipRole)、w文本前的图标(DecorationRole)等。
除了上述可以保存的属性外,还有部分属性用于设置QStandardItem显示的样式,如字体(FontRole)、文本对齐方式(TextAlignmentRole)等。
Qt资料领取→「链接」
数据项角色的分类
Qt帮助文档中将数据项角色分为三类:
- 内容设置
类型 | 功能 |
DisplayRole | 主要用于以文本的形式显示数据 QString |
EditRole | 可用于文本数据的编辑 (QString) |
DecorationRole | 可以将数据通过图标的方式呈现出来 (QColor、QIcon、QPixmap) |
ToolTipRole | 实现当鼠标处于选中的数据时,显示出数据的相关提示(QString) |
StatusTipRole | 在状态栏显示提示的数据(QString) |
WhatsThisRole | 可以通过选中数据摁下快捷键shift+F1来显示提示(QString) |
SizeHintRole | 可以提示相应大小(QSize) |
- 内容样式设置
类型 | 功能 |
FontRole | 可以改变数据的字体 |
TextAlignmentRole | 可以将文本的位置进行居中、居左居右调整 |
BackgroundColorRole | 可以改变背景色 |
TextColorRole | 设置文字颜色 |
ForegroundRole | 可以改变前景色 |
CheckStateRole | 在某列中设置了CheckStateRole角色后,设置的列则可以显示出一个CheckBox。 |
InitialSortOrderRole | 标题视图初始排序顺序 |
- 其他
类型 | 功能 |
AccessibleTextRole | 用于辅助功能和插件扩展的文本(如屏幕阅读器) |
AccessibleDescriptionRole | 用于无障碍项目的描述 |
UserRole | 用于应用程序的特定目的(自己定义用途).用户自己决定使用什么数据,如何处理数据 |
数据项角色的测试
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPixmap>
#include <QRgb>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
theModel = new QStandardItemModel(1, 2, this);
ui->tableView->setModel(theModel);
QPixmap pix;
pix.load("C:\\Users\\wsw\\Desktop\\2.png");
pix.scaledToWidth(20);
pix.scaledToHeight(20);
QModelIndex index = theModel->index(0, 0);
theModel->setData(index, "124", Qt::DisplayRole);//设置文本
theModel->setData(index, pix, Qt::DecorationRole);//设置标签图片
theModel->setData(index, "tips", Qt::ToolTipRole);//设置提示
theModel->setData(index, Qt::AlignRight, Qt::TextAlignmentRole);//设置文本对齐方式
QStandardItem* item = theModel->itemFromIndex(index);//设置数据项中包含勾选框
item->setCheckable(true);
item->setData(Qt::Checked, Qt::CheckStateRole);
// item->setWhatsThis("what'sThis");
// item->setData("what?", Qt::WhatsThisRole); //在Dialog中能起作用,Dialog标题栏中有?,点击?后鼠标变为问号鼠标,再点击当前项会出现黄色框
//设置字体
QFont font;
font.setBold(true);
font.setPixelSize(24);
font.setFamily("Microsoft YaHei");
font.setItalic(true);
theModel->setData(index, font, Qt::FontRole);
}
MainWindow::~MainWindow()
{
delete ui;
}
文章转自博客园(YueLiGo):https://www.cnblogs.com/wsw2022/p/17078613.html
Qt资料领取→「链接」
猜你喜欢
- 2024-10-14 「Qt入门第31篇」 网络(一)Qt网络编程简介
- 2024-10-14 qt 做手机android的串口通讯 qt下串口通信
- 2024-10-14 Qt 读写txt文本文件(qt读入文件)
- 2024-10-14 Qt 信号槽连接不成功问题原因汇总
- 2024-10-14 QML 性能优化建议(一)(qml例程)
- 2024-10-14 C++ QT中文件的读写操作(UI界面)(qt怎么读取文件内容)
- 2024-10-14 Qt 中的智能指针(qt 函数指针)
- 2024-10-14 Qt如何读取和写入配置文件的数据(qt 读写配置文件)
- 2024-10-14 Qt pro文件中的常用宏说明(qt pro 自定义宏)
- 2024-10-14 Qt应用程序主窗口:拖放操作与打印文档
你 发表评论:
欢迎- 05-09Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 05-09《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- 05-09MapStruct架构设计(mapstruct @mapping)
- 05-09分布式微服务架构组件(分布式微服务架构设计)
- 05-09Java Swing组件下的JButton实例(java swing 组件)
- 05-09java基础都在这了,小主们拿去吧(java基础是指什么)
- 05-09AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 05-09【Spring Boot】WebSocket 的 6 种集成方式
- 最近发表
-
- Spring Boot3 RESTful 接口参数校验,这篇吃透就够了!
- 《Spring6》第02节:基于XML方式搭建Spring6框架开发环境
- MapStruct架构设计(mapstruct @mapping)
- 分布式微服务架构组件(分布式微服务架构设计)
- Java Swing组件下的JButton实例(java swing 组件)
- java基础都在这了,小主们拿去吧(java基础是指什么)
- AOP的实现落地(拦截过滤),一切都要从Servlet说起
- 【Spring Boot】WebSocket 的 6 种集成方式
- Java 中五种最常见加密算法:原理、应用与代码实现
- 用注解进行参数校验,spring validation介绍、使用、实现原理分析
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)