QTableWidget的使用案例

news2024/10/5 16:21:03

QTableWidget的使用案例

请添加图片描述

创建QTableWidget

	m_table_widget = new QTableWidget(this);
    m_table_widget->setObjectName("TableWidget");
    m_table_widget->setShowGrid(false);
    m_table_widget->setSortingEnabled(true);
    m_table_widget->setEditTriggers(QAbstractItemView::EditTrigger::NoEditTriggers);
    m_table_widget->setContextMenuPolicy(Qt::ContextMenuPolicy::CustomContextMenu);
    m_table_widget->setSelectionBehavior(QAbstractItemView::SelectionBehavior::SelectRows);
    m_table_widget->setColumnCount(5);
    m_table_widget->setHorizontalHeaderLabels({TU(""), TU("文件名称"), TU("日期"), TU("类型"), TU("大小")});
    m_table_widget->verticalHeader()->setVisible(false);
    m_table_widget->horizontalHeader()->resizeSection(0, 50);
    m_table_widget->horizontalHeader()->resizeSection(2, 140);
    m_table_widget->horizontalHeader()->resizeSection(3, 100);
    m_table_widget->horizontalHeader()->resizeSection(4, 100);
    m_table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::Fixed);
    m_table_widget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeMode::Stretch);
    m_table_widget->verticalScrollBar()->setContextMenuPolicy(Qt::ContextMenuPolicy::NoContextMenu);
    m_table_widget->horizontalScrollBar()->setContextMenuPolicy(Qt::ContextMenuPolicy::NoContextMenu);

    connect(m_table_widget, &QTableWidget::itemSelectionChanged, this, &Widget::itemSelectionChanged);
    connect(m_table_widget, &QTableWidget::itemClicked, this, &Widget::itemClicked);

添加数据

    for(int row = 0; row < 10; ++row)
    {
        m_table_widget->insertRow(m_table_widget->rowCount());

        auto item = new QTableWidgetItem();
        item->setIcon(QIcon("D:\\wsl.ico"));
        item->setCheckState(Qt::CheckState::Unchecked);
        m_table_widget->setItem(row, 0, item);
        m_table_widget->setItem(row, 1, new QTableWidgetItem(QString("filename_xxxxx_%1").arg(row)));
        m_table_widget->setItem(row, 2, new QTableWidgetItem("2024/01/01 10:00:00"));
        m_table_widget->setItem(row, 3, new QTableWidgetItem("xxxxx.txt"));
        m_table_widget->setItem(row, 4, new QTableWidgetItem("124000KB"));
    }

清空数据

    while(m_table_widget->rowCount() > 0)
    {
        m_table_widget->removeRow(m_table_widget->rowCount() - 1);
    }

处理选择

在选择了行时,设置复选框的选中状态。

void Widget::itemSelectionChanged()
{
    for(int row = 0; row < m_table_widget->rowCount(); ++row)
    {
        auto item = m_table_widget->item(row, 0);
        if (item->isSelected())
        {
            item->setCheckState(Qt::CheckState::Checked);
        }
        else
        {
            item->setCheckState(Qt::CheckState::Unchecked);
        }
    }
}

处理单击

点击复选框后,设置行的选中状态。

    if (0 == item->column())
    {
        if (Qt::CheckState::Checked == item->checkState())
        {
            m_table_widget->selectRow(item->row());
        }
        else if (Qt::CheckState::Unchecked == item->checkState())
        {
            for(int col = 0; col < m_table_widget->columnCount(); ++col)
            {
                m_table_widget->item(item->row(), col)->setSelected(false);
            }
        }
    }

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

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

相关文章

EcoVadis评估是什么?EcoVadis评估的步骤有哪些

EcoVadis评估是一种针对供应链中各个环节的环境和社会责任进行评估的工具。其评估范围广泛&#xff0c;涵盖了环境、劳工与人权、商业道德和可持续采购等多个领域。通过收集企业的公开信息、企业提供的数据和自我评估问卷等方式&#xff0c;EcoVadis能够为企业提供一个全面的可…

C++ 之 newmat 矩阵运算库使用笔记

文章目录 Part.I IntroductionChap.I newmat 简介 Part.II 安装与编译Chap.I 直接使用源码Chap.II 基于 CMake 使用源码Chap.III 编译成库 Part.III 关于矩阵的构造与运算Chap.I 矩阵的构造与初始化Chap.II 矩阵的运算Chap.III 矩阵维数和类型的更改Chap.IV 矩阵最值统计 Refer…

Spring容器结构

文章目录 1.基本介绍1.Spring5官网2.API文档3.Spring核心学习内容4.几个重要概念 2.快速入门1.需求分析2.入门案例1.新建Java项目2.导入jar包3.编写Monster.java4.src下编写Spring配置文件1.创建spring配置文件&#xff0c;名字随意&#xff0c;但是需要放在src下2.创建Spring …

蓝桥杯(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

张大哥笔记:电脑周边的10大刚需创业小项目

hello&#xff0c;大家好&#xff0c;我是张大哥&#xff0c;今天一口气给大家分享围绕电脑周边的10大刚需创业小项目&#xff0c;本文章旨在帮助大家如何快速切入到细分领域里面搞钱&#xff01; 如何赚钱&#xff0c;无非就是解决人群痛点&#xff0c;你要懂得根据用户痛点去…

知识跟踪模型GraphKT

1 知识跟踪Knowledge Tracing的概念 知识跟踪可以用来解决自适应学习问题。如何通过与教学材料的在线互动来有效地跟踪学生的学习进展&#xff1f;知识跟踪可用于量化学生的知识状态&#xff0c;即对教材所涉及的技能掌握水平。用于评估和模拟学生随着时间推移对技能的认知掌握…

双指针的引入和深入思考(持续更新中)

目录 1.引入双指针 2.使用场景 3.例题引入 1.引入双指针 当我们需要维护某个区间性质的或者是求满足某些性质的区间的长度时&#xff0c;对于一个区间是由左右端点的&#xff0c;我们有简单的枚举左右端点的O()的时间的做法&#xff0c;当时在大多数题目中是不可行的&#…

4核8G配置服务器多少钱?2024年阿里云服务器700元1年价格便宜

4核8G配置服务器多少钱&#xff1f;2024年阿里云服务器700元1年价格便宜。阿里云4核8G服务器租用优惠价格700元1年&#xff0c;配置为ECS通用算力型u1实例&#xff08;ecs.u1-c1m2.xlarge&#xff09;4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选&#xff0c;CPU采…

Java设计模式——代理模式

静态代理&#xff1a; Java静态代理是设计模式中的一种&#xff0c;它通过创建一个代理类来代替原始类&#xff0c;从而提供额外的功能或控制原始类的访问。 如何使用Java静态代理 要创建一个静态代理&#xff0c;你需要有一个接口&#xff0c;一个实现该接口的目标类&#…

Python pyglet制作彩色圆圈“连连看”游戏

原文链接&#xff1a; Python 一步一步教你用pyglet制作“彩色方块连连看”游戏(续)-CSDN博客文章浏览阅读1.6k次&#xff0c;点赞75次&#xff0c;收藏55次。上期讲到相同的色块连接&#xff0c;链接见&#xff1a; Python 一步一步教你用pyglet制作“彩色方块连连看”游戏-…

Java中的容器

Java中的容器主要包括以下几类&#xff1a; Collection接口及其子接口/实现类&#xff1a; List 接口及其实现类&#xff1a; ArrayList&#xff1a;基于动态数组实现的列表&#xff0c;支持随机访问&#xff0c;插入和删除元素可能导致大量元素移动。LinkedList&#xff1a;基…

【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题

文章目录 一、什么是时间复杂度和空间复杂度&#xff1f;1.1 算法效率1.2 时间复杂度的概念1.3 空间复杂度的概念1.4 复杂度计算在算法中的意义 二、时间复杂度的计算2.1 大O渐进表示法2.2 常见时间复杂度计算举例 三、空间复杂度的计算四、Leetcode刷题1. 消失的数2. 旋转数组…

对接实例:致远OA对接金蝶云星空场景解决方案

正文&#xff1a;很多企业在数字化建设得时候&#xff0c;对内部系统间的高效协同与数据流转提出了更高要求。金蝶云星空作为行业领先的ERP解决方案&#xff0c;与专业协同办公平台致远OA的深度对接&#xff0c;在人员管理、组织架构、采购与销售合同、费用审批等在内的全方位企…

javaWeb项目-网上图书商城系统功能介绍

项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff1a;Vue、ElementUI 关键技术&#xff1a;springboot、SSM、vue、MYSQL、MAVEN 数据库工具&#xff1a;Navicat、SQLyog 1、Java技术 Java语…

Flask框架初探-如何在本机发布一个web服务并通过requests访问自己发布的服务-简易入门版

Flask框架初探 在接触到网络框架之前我其实一直对一个事情有疑惑&#xff0c;跨语言的API在需要传参的情况下究竟应该如何调用&#xff0c;之前做过的项目里&#xff0c;我用python做了一个代码使用一个算法得到一个结果之后我应该怎么给到做前端的同学或者同事&#xff0c;之前…

2024腾讯一道笔试题--大小写字母移动

题目&#x1f357; 有一个字符数组,其中只有大写字母和小写字母,将小写字母移到前面, 大写字符移到后面,保持小写字母本身的顺序不变,大写字母本身的顺序不变, 注意,不要分配新的数组.(如:wCelOlME,变为wellCOME). 思路分析&#x1f357; 类似于冒泡排序&#xff0c;两两比较…

JavaSE中的String类

1.定义方式 常见的三种字符串构造 public class Test1 {public static void main(String[] args) {// 使用常量串构造String str1 "abc";System.out.println(str1);// 直接newString对象String str2 new String("ABC");System.out.println(str2);// 使用…

ssm056基于Java语言校园快递代取系统的设计与实现+jsp

校园快递代取系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本校园快递代取系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短…

node基础 第二篇

01 ffmpeg开源跨平台多媒体处理工具&#xff0c;处理音视频&#xff0c;剪辑&#xff0c;合并&#xff0c;转码等 FFmpeg 的主要功能和特性:1.格式转换:FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式&#xff0c;支持几乎所有常见的音频和视频格式&#xff0c;包括 MP…

工业控制(ICS)---OMRON

OMRON FINS 欧姆龙厂商 命令代码(Command CODE)特别多&#xff0c;主要关注读写相关&#xff0c;如&#xff1a; Memory Area Read (0x0101) Memory Area Write (0x0102) Multiple Memory Area Read (0x0104) Memory Area Transfer (0x0105) Parameter Area Read (0x0201) Pa…