Qt中的 tableView 设置 二进制 十六进制 序号表头

二 进制序号

在这里插入图片描述

因为QTableView的垂直表头并不支持使用委托来自定义。
相反,可以通过将自定义的QWidget作为QHeaderView的标签来实现这一目标。

代码:

#include <QApplication>
#include <QMainWindow>
#include <QVBoxLayout>
#include <QScrollArea>
#include <QTableView>
#include <QStandardItemModel>
#include <QHeaderView>
#include <QLabel>
#include <QPainter>class BinaryHeaderView : public QHeaderView {
public:BinaryHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr) : QHeaderView(orientation, parent) {}protected:void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override {if (orientation() == Qt::Vertical) {QString binary = QString::number(logicalIndex, 2).rightJustified(4, '0');painter->save();painter->drawText(rect, Qt::AlignCenter, binary);painter->restore();} else {QHeaderView::paintSection(painter, rect, logicalIndex);}}
};//------------------------------------------------------------------------以上复制到自己代码int main(int argc, char *argv[]) {QApplication app(argc, argv);QMainWindow mainWindow;// 创建表格QTableView tableView;// 创建模型和数据QStandardItemModel model(10, 10);for (int row = 0; row < 10; ++row) {for (int column = 0; column < 10; ++column) {QModelIndex index = model.index(row, column, QModelIndex());model.setData(index, QVariant(row * 10 + column + 1));}}tableView.setModel(&model);// 设置水平表头tableView.horizontalHeader()->hide();//------------------------------------------------------------------------以下复制到自己代码// 创建垂直表头BinaryHeaderView *verticalHeader = new BinaryHeaderView(Qt::Vertical, &tableView);tableView.setVerticalHeader(verticalHeader);
//------------------------------------------------------------------------end// 将表格添加到主窗口mainWindow.setCentralWidget(&tableView);mainWindow.resize(600, 400);mainWindow.show();return app.exec();
}

在这个示例中,自定义了BinaryHeaderView类,继承自QHeaderView,
重写了paintSection方法来绘制二进制序列。然后,将这个自定义的垂直表头应用到了QTableView中。

十六 进制序号

在这里插入图片描述

#include <QApplication>
#include <QMainWindow>
#include <QVBoxLayout>
#include <QScrollArea>
#include <QTableView>
#include <QStandardItemModel>
#include <QHeaderView>
#include <QPainter>class HexHeaderView : public QHeaderView {
public:HexHeaderView(Qt::Orientation orientation, QWidget *parent = nullptr) : QHeaderView(orientation, parent) {}protected:void paintSection(QPainter *painter, const QRect &rect, int logicalIndex) const override {if (orientation() == Qt::Vertical) {QString hex = QString("%1").arg(logicalIndex * 16, 4, 16, QChar('0'));painter->save();painter->drawText(rect, Qt::AlignCenter, hex);painter->restore();} else {QHeaderView::paintSection(painter, rect, logicalIndex);}}
};int main(int argc, char *argv[]) {QApplication app(argc, argv);QMainWindow mainWindow;// 创建表格QTableView tableView;// 创建模型和数据QStandardItemModel model(10, 10);for (int row = 0; row < 10; ++row) {for (int column = 0; column < 10; ++column) {QModelIndex index = model.index(row, column, QModelIndex());model.setData(index, QVariant(row * 10 + column + 1));}}tableView.setModel(&model);// 设置水平表头tableView.horizontalHeader()->hide();// 创建垂直表头HexHeaderView *verticalHeader = new HexHeaderView(Qt::Vertical, &tableView);tableView.setVerticalHeader(verticalHeader);// 将表格添加到主窗口mainWindow.setCentralWidget(&tableView);mainWindow.resize(600, 400);mainWindow.show();return app.exec();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/2878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反射 - - - - - - - - 内省【精细】

1、概念 Java内省机制&#xff08;Introspection&#xff09;是一种访问Java Bean属性的方式&#xff0c;它允许程序在运行时获取和设置Java对象的属性。通过内省机制&#xff0c;程序可以在运行时获取对象的属性名、类型和值&#xff0c;并动态地设置对象的属性值。内省机制为…

骑砍2霸主MOD开发(8)-action_sets.xml骨骼动画

一.action_sets.xml 1.文件目录:Modules\Native\ModuleData\action_sets.xml 2.action_set(骨骼动画animation) action1 action2 action3 3.通过在action_set中配置skeleton,人,马匹,牛,羊等骨架 二.使用编辑器修改动作 三.骨架&骨骼&骨骼动画 1.骨架skeleton Skele…

企业微信hook接口协议,根据手机号搜索联系人

根据手机号搜索联系人 参数名必选类型说明uuid是String每个实例的唯一标识&#xff0c;根据uuid操作具体企业微信 请求示例 {"uuid":"3240fde0-45e2-48c0-90e8-cb098d0ebe43","phoneNumber":"1357xxxx" } 返回示例 {"data&q…

opencv可视化图片-----c++

可视化图片 #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <filesystem>// 将数据类型转换为字符串 std::string opencvTool::type2str(int type) {std::string r;uchar depth type & CV_MAT_DEPTH_MASK;uchar chans 1 (typ…

rust是否可以用于8051单片机开发工作?

目前&#xff0c;Rust 在嵌入式领域的发展主要集中在一些常见的架构上&#xff0c;如ARM Cortex-M&#xff08;包括STM32系列&#xff09;、RISC-V等。我这里有一套嵌入式入门教程&#xff0c;不仅包含了详细的视频 讲解&#xff0c;项目实战。如果你渴望学习嵌入式&#xff0c…

递归、搜索与回溯算法:FloodFill 算法

例题一 算法思路&#xff1a; 可以利⽤「深搜」或者「宽搜」&#xff0c;遍历到与该点相连的所有「像素相同的点」&#xff0c;然后将其修改成指定的像素即可。 全局变量&#xff1a; int dx[4] { 0,0,1,-1 }, dy[4] { 1,-1,0,0 }; int m, n; int precolor;//记录原先的颜色…

debian和ubuntu的核心系统和系统命令的区别

Debian和Ubuntu虽然有很深的渊源&#xff0c;都是基于Debian的发行版&#xff0c;但它们在核心系统和系统命令上还是有一些差别的。以下是一些主要的不同之处&#xff1a; 1. 发布周期&#xff1a; - Debian&#xff1a; Debian项目采用滚动发布模型&#xff0c;持续更新&a…

CCF区块链会议--Middleware 2024 截止5.24 附录用率

会议名称&#xff1a;Middleware CCF等级&#xff1a;CCF B类会议 类别&#xff1a;软件工程/系统软件/程序设计语言 录用率&#xff1a;2022年录用率38%&#xff08;8/21&#xff09; Topics of Interest The Middleware conference seeks original submissions of resear…

【Linux网络】Linux网络设置

如果你不会网络设置&#xff0c;就好比自己的拖鞋被硬控了&#xff0c;导致自己无法下床 目录 一、网络配置 1.1 主要配置网络的配置项 1.2 ifconfig——查看网卡配置 1.3 route——路由 1.4 hostname——主机名 1.5 ss——查看网络链接状态 1.6 scp——远程拷贝 1.7 …

39、Lua 中调用C函数(lua-5.2.3)

Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。 对于有些和操作系统相关的功能&#xff0c;或者是对效率要求较高的模块&#xff0c;我们完全可以通过C函数来实现&#xff0c;之后再通过Lua调用指定的C函数。 对于那些可被Lua调用的C函数而言&#xff0c;其接口…

游戏热更新进修——Lua编程

Lua编程 Lua是什么 Lua是一种轻量小巧的脚本语言&#xff0c;用标准C语言编写并以源代码形式开放&#xff0c;其设计目的是为了嵌入应用程序中&#xff0c;从而为应用程序提供灵活的拓展和定制功能 Lua可以方便的和其他进程进行集成(C,c#,java,) Lua应用场景 游戏开发独立应…

<网络> HTTP

目录 前言&#xff1a; 一、再谈协议 &#xff08;一&#xff09;认识URL &#xff08;二&#xff09;Encode 和 Decode 二、HTTP 协议 &#xff08;一&#xff09;协议格式 &#xff08;二&#xff09;见一见请求 &#xff08;三&#xff09;见一见响应 三、模拟实现响…

百度安全多篇议题入选Blackhat Asia以硬技术发现“芯”问题

Blackhat Asia 2024于4月中旬在新加坡隆重举行。此次大会聚集了业界最杰出的信息安全专业人士和研究者&#xff0c;为参会人员提供了安全领域最新的研究成果和发展趋势。在本次大会上&#xff0c;百度安全共有三篇技术议题被大会收录&#xff0c;主要围绕自动驾驶控制器安全、跨…

nvm的简介、安装、使用

一、nvm是什么&#xff1f; nvm是一个node的版本管理工具&#xff0c;可以简单操作node版本的切换、安装、查看。。。等等&#xff0c;与npm不同的是&#xff0c;npm是依赖包的管理工具。 二、nvm的安装。 2.1 nvm下载 安装包下载地址&#xff1a;https://github.com/coreyb…

共享单车(二):项目日志

stdin, stdout, stderr Linux系统下&#xff0c;当一个用户进程被创建时&#xff0c;与之对应的三个数据流&#xff08;stdin&#xff0c;stdout和stderr&#xff0c;即三个文件&#xff09;也会被创建。 stdin&#xff0c;标准输入文件&#xff0c;通常对应着终端的键盘。 s…

微前端qiankun

webcomponent 微前端&#xff1a;将产品的各个功能模块作为一个个独立的应用系统&#xff0c;然后将这些模块整合起来组装成完整的产品。 具体使用 https://qiankun.umijs.org/zh/guide/tutorial 注意&#xff1a;微应用需要配置打包格式和跨域&#xff1b; 打包格式&#xf…

【C语言 |预处理指令】预处理指令详解(包括编译与链接)

目录 一、编译与链接 1.翻译环境 -预处理 -编译 -汇编 -链接 2.执行环境 二、预定义符号 三、#define定义常量 四、#define定义宏 五、带有副作用的宏参数 六、宏替换的规则 七、 宏函数的对比 八、#和## 1.#运算符 2.##运算符 九、命名约定 十、#undef 十一、 命…

IDEA本地将镜像推送到coding制品仓库

创建制品仓库 假设仓库名称为docker 在IDEA 添加Docker 注册表 IDEA必须先安装docker插件 地址 用户名和密码就是coding的登录名和密码服务器 最好本地安装docker桌面版&#xff0c;更容易操作 测试连接成功 推送镜像到coding的docker制品仓库 选中某个镜像 鼠标右键 注册表…

四.RocketMQ的几种消息发送方式应用

RocketMQ的几种消息发送方式应用 一&#xff1a;普通消息1&#xff09;发送同步消息2&#xff09;发送异步消息3&#xff09;单向发送消息4&#xff09;消费消息-负载均衡模式5&#xff09;消费消息-广播模式 二&#xff1a;顺序消息1.顺序消息指的是:严格按照消息的发送顺序进…

服务器数据恢复—ESXi无法识别数据存储和VMFS文件系统如何恢复数据?

服务器数据恢复环境&#xff1a; 一台某品牌服务器&#xff0c;通过FreeNAS来做iSCSI&#xff0c;然后使用两台同品牌服务器做ESXi虚拟化系统。 FreeNAS层为UFS2文件系统&#xff0c;使用整个存储建一个稀疏模式的文件&#xff0c;挂载到ESXi虚拟化系统。ESXi虚拟化系统中有3台…