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

news/2024/5/21 12:14:13

二 进制序号

在这里插入图片描述

因为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.mrgr.cn/p/02538453

相关文章

原样压缩conda环境,并迁移环境至另一服务器

原样压缩conda环境,并迁移环境至另一服务器 压缩原环境 pip install conda-pack or conda install conda-pack 安装好conda-pack后,使用下列命令压缩环境为tar.gz压缩包 conda pack -n my_envconda pack -n my_env -o out_name.tar.gzconda pack -p /explicit/path/to/my_env…

2024-4-27 周六 考试 and 聚餐

早上八点半考大物,考到九点半,稍微有点难度,考的跟做的往年题不是特别一样,考完回去看会单词下午一点又考的英语,又考了一个小时,英语真是不太会,考完就解放了。本来打算考完和李天熠何俊辉去打台球的,结果李天熠说累了又不去了,晚上刚点完炸鸡李天熠又要出去吃,他想…

java线上问题排查之磁盘和网络查看分析(二)

一、磁盘&IO df -lh 查看磁盘使用情况 Filesystem&#xff1a;文件系统 Size&#xff1a;容量 Used&#xff1a;已用 Avail&#xff1a;可用 Use%&#xff1a;已用百分比 Mounted on&#xff1a;挂载点 二、网络 查看TCP连接情况 常见问题 tcp队列溢出 netstat -s |e…

2024-4-27 周六 考试

早上八点半考大物,考到九点半,稍微有点难度,考的跟做的往年题不是特别一样,考完回去看会单词下午一点又考的英语,又考了一个小时,英语真是不太会,考完就解放了。本来打算考完和李天熠何俊辉去打台球的,结果李天熠说累了又不去了,晚上刚点完炸鸡李天熠又要出去吃,他想…

国内首个图计算平台团体标准发布,创邻科技参与编撰

2024年&#xff0c;由中国通信标准协会批准的团体标准《大数据 图计算平台技术要求与测试方法》&#xff08;编号&#xff1a;T/CCSA 470—2023&#xff09;&#xff08;下称&#xff1a;标准&#xff09;正式实施。该标准于1月4日在全国团体标准信息平台&#xff08;https://w…

[C++][算法基础]最大不相交区间数量(贪心 + 区间问题2)

给定 &#x1d441; 个闭区间 [&#x1d44e;&#x1d456;,&#x1d44f;&#x1d456;]&#xff0c;请你在数轴上选择若干区间&#xff0c;使得选中的区间之间互不相交&#xff08;包括端点&#xff09;。 输出可选取区间的最大数量。 输入格式 第一行包含整数 &#x1d4…

Eureka服务注册与发现

Eureka服务注册与发现 概念原理Eureka的基本架构Eureka包含两个组件&#xff1a;Eureka Server和Eureka Client 三大角色目前工程情况 构建步骤step1&#xff1a;EurekaServer服务注册中心Module的建立step2&#xff1a;将已有的微服务注册进eureka服务中心actuator与注册微服务…

构建NodeJS库--前端项目的打包发布

1. 前言 学习如何打包发布前端项目&#xff0c;需要学习以下相关知识&#xff1a; package.json 如何初始化配置&#xff0c;以及学习npm配置项&#xff1b; 模块类型type配置&#xff0c; 这是nodejs的package.json的配置main 入口文件的配置 webpack 是一个用于现代 JavaSc…

【Node.js】03 —— HTTP 模块探索

&#x1f31f;Node.js之HTTP模块探索✨ &#x1f31f;引言 在网络编程中&#xff0c;HTTP协议无处不在。在Node.js的世界里&#xff0c;我们可以通过内置的http模块来轻松创建HTTP服务器和客户端&#xff0c;实现数据的接收和发送。今天就让我们一起打开这扇门&#xff0c;探索…

嵌入式Linux,openssh连接报错:ssh_sandbox_violation: unexpected system call

背景: 使用buildroot编译完镜像,烧录到开发板,板子上电启动后,网络正常,ssh不能连接,sshd相同配置在其他机器上可以正常使用; 查看内核日志,看到连接时上报异常系统调用的错误:Jan 1 00:01:18 NanoPC-T2 auth.crit sshd[278]: fatal: ssh_sandbox_violation: unexpec…

七彩虹(Colorful)隐星P16 2023款笔记本电脑原装出厂Win11系统镜像下载 带建Recovery一键还原功能

七彩虹原厂Windows预装OEM专用系统&#xff0c;恢复出厂开箱状态一模一样 适用型号&#xff1a;隐星P16 23 链接&#xff1a;https://pan.baidu.com/s/1Ig5MQMiC8k4VSuCOZRQHUw?pwdak5l 提取码&#xff1a;ak5l 原厂W11系统自带所有驱动、出厂时自带的主题与专用壁纸、系…

记录浏览器打开网站拦截提示不安全解决方法

浏览器可能会因为多种原因显示“不安全”的警告,这通常是由于安全设置不当或配置错误造成的。以下是一些常见的原因和解决方法: 1. HTTPS未启用 原因:如果网站使用HTTP而不是HTTPS,浏览器可能会显示不安全的警告。 解决方法:配置SSL/TLS证书并使用HTTPS来加密数据传输…

epub可以转换为mobi吗?epub转换mobi在线转换,5款工具分享!

在数字化时代&#xff0c;电子书格式多样&#xff0c;每种格式都有其独特的特点和适用场景。其中&#xff0c;EPUB和MOBI是两种非常流行的电子书格式。然而&#xff0c;有时候&#xff0c;用户可能会因为某种需求或限制&#xff0c;希望将EPUB格式的文件转换为MOBI格式。这时&a…

【pytorch学习】之多层感知机

多层感知机 1 多层感知机 最简单的深度网络称为多层感知机。多层感知机由多层神经元组成,每一层与它的上一层相连,从中接收输入;同时每一层也与它的下一层相连,影响当前层的神经元。当我们训练容量较大的模型时,我们面临着过拟合的风险。因此,将从基本的概念介绍开始讲起…

关于我,与一些关于我的事

大家好。你们有的人可能认识我,有的人可能不认识。我是 cpchenpi(Codeforces、Atcoder 同名),这个 ID 可能不是很好听,但也跟了我很长时间了。真名叫陈骆鑫(这种程度的隐私大概不算什么),目前(截至本文写作日期 2024.04.30)是中国科学技术大学的一名大三学生。曾经是…

读懂一本书笔记

文章目录 引言 我是一个用读书改变自己生活的人01 会读书&#xff0c;更要会讲书复杂时代&#xff0c;阅读是大众反脆弱的武器你焦虑吗&#xff1f;如何从“单向度的人”变为“多向度的人”第一&#xff0c;读书是主动的学习方式第二&#xff0c;读书是有针对性的学习方式 讲书…

QT中基于TCP的网络通信

QT中基于TCP的网络通信 QTcpServer公共成员函数信号 QTcpSocket公共成员函数信号 通信流程服务器端通信流程代码 客户端通信流程代码 多线程网络通信SendFileClientSendFileServer 使用Qt提供的类进行基于TCP的套接字通信需要用到两个类&#xff1a; QTcpServer&#xff1a;服…

SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第12章 游标的使用 读书笔记

第十二章 游标的使用>.游标的概述游标是一种数据库对象,用于在SQL中处理(SELECT的)查询结果集。它允许逐行地访问查询结果集的数据,以进行一系列操作,如更新、删除或插入数据。游标通常用于存储过程或触发器中,用于对数据进行逐行处理。通过游标,可以实现对结果集的逐行…

【Linux】管道

思维导图 学习内容 进程间通信的一些知识点&#xff1a;是什么、为什么和怎么办&#xff1f;&#xff1f;之后就是理解管道中的匿名管道的一些知识点&#xff1a;会创建匿名管道、匿名管道的四种情况……最后&#xff0c;就是进程池的代码编写&#xff0c;也是最难的一部分。 …

完美国际单机debug版本

完美国际单机debug版本 更新版本号:无 下载地址: https://files.cnblogs.com/files/xe2011/debug_wmGj.rar说明这只能用在个人单机版本的游戏上使用, 不能在官方完美世界,完美世界2上使用联系方式 微信:roman_2015【更新记录】 2024年1月28日 15:14:33 [*]修复了城战会掉线…