qt学习:Table widget控件

news2024/11/18 2:28:48

目录

头文件

实战

重新配置ui界面

添加头文件

在构造函数中添加初始化

显示方法


该实例是在sqlite项目上添加qt学习:QTSQL+连接sqlite数据库+增删改查-CSDN博客

头文件

#include <QTableWidgetItem>

实战

重新配置ui界面

用法介绍,可以双击进入到行和列的控制浮窗进行添加行和列,或者通过代码方式

添加头文件

在构造函数中添加初始化

    //初始化表格控件
    //1、设置表头的文本
    QStringList list;
    //将每列的标题写入list
    list<<"ID"<<"姓名"<<"地址"<<"工资"<<"更多";

    //2、设置表格控件的列数
    ui->tableWidget->setColumnCount(5);

    //设置颜色交替
    ui->tableWidget->setAlternatingRowColors(true);

    //设置列的宽度
    ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    //3、设置水平表头
    //ui->tableWidget->columnCount()得到列数
    for(int i=0; i<ui->tableWidget->columnCount(); i++)
    {
        //实例化一个单元格类的对象
        QTableWidgetItem *item = new QTableWidgetItem;
        item->setText(list.at(i));

        //设置字体
        QFont font = item->font();
        font.setBold(true);//加粗
        font.setPixelSize(32);
        item->setFont(font);

        //将单元格设置为水平表头,第i列,
        //简单来说就是将item单元格设置到第0行的第i列格子上
        ui->tableWidget->setHorizontalHeaderItem(i,item);
    }

显示方法

    //查询语句
    QString sql = QString("select * from staff order by  name desc;");
    //创建一个可以对db执行语句的对象
    QSqlQuery query(db);
    //执行sql语句
    bool ret = query.exec(sql);
    if(ret == false)
    {
        qDebug()<<"select error "<<query.lastError().text();
    }
    //从第一行开始显示
    int row = 0;

    //查询的结果
    while(query.next())
    {
        //获取到查询到的数据
        int id = query.value(0).toInt();
        QString name = query.value("name").toString();
        QString address = query.value("address").toString();
        double salary = query.value("salary").toDouble();
        //组合成字符串,可以打印出来
        QString text = QString("id:%1 name:%2 address:%3 salary:%4").arg(id).arg(name).arg(address).arg(salary);

        //放到表格控件上显示
        //在插入一行记录之前,表格控件先 新增一行,告诉这个表格控件 我要插入一行数据,你要把相关的操作 初始化好
        qDebug()<<"row:"<<ui->tableWidget->rowCount();//打印出当前表格有多少行
        ui->tableWidget->setRowCount(ui->tableWidget->rowCount() + 1);
        //新建一个单元格指针
        QTableWidgetItem *item;

        //ID单元格
        //配置单元格空间,内容,布局
        item = new QTableWidgetItem;
        item->setText(QString::number(id));
        item->setTextAlignment(Qt::AlignCenter);

        //void QTableWidget::setItem(int row, int column, QTableWidgetItem *item)
        //第一个参数表示 将当前这个单元格 插到 第row行
        //第二个参数表示 将当前这个单元格 插到 第 column列
        ui->tableWidget->setItem(row,0,item);

        //name 单元格
        item = new QTableWidgetItem;
        item->setText(name);
        item->setTextAlignment(Qt::AlignCenter);
        ui->tableWidget->setItem(row,1,item);

        //address 单元格
        item = new QTableWidgetItem;
        item->setText(address);
        item->setTextAlignment(Qt::AlignCenter);
        ui->tableWidget->setItem(row,2,item);

        //salary 单元格
        item = new QTableWidgetItem;
        item->setText(QString::number(salary));
        item->setTextAlignment(Qt::AlignCenter);
        ui->tableWidget->setItem(row,3,item);

        //更多按钮配置
        QPushButton *btn = new QPushButton;
        btn->setText("...");
        ui->tableWidget->setCellWidget(row, 4, btn);

        row++;
    }

 

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

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

相关文章

大数据StarRocks(八):资源隔离实战

前言 自 2.2 版本起&#xff0c;StarRocks 支持资源组管理&#xff0c;集群可以通过设置资源组&#xff08;Resource Group&#xff09;的方式限制查询对资源的消耗&#xff0c;实现多租户之间的资源隔离与合理利用。在 2.3 版本中&#xff0c;StarRocks 支持限制大查询&#…

RK3568 Android 13 系统裁剪

android 13 系统裁剪是个大工程&#xff0c;裁剪也是需要大量的测试&#xff0c;才能保证系统的稳定性&#xff0c;以下是RK官方给出的裁剪方案&#xff0c;有兴趣的可以去看一下&#xff0c;对裁剪不是要求过高的可以根据官方的建议&#xff0c;对系统进行裁剪: Rockchip And…

ssh 配置

ssh 配置 在管理Git项目上&#xff0c;很多时候都是直接使用 https url 克隆到本地&#xff0c;当然也有有些人使用 SSH url 克隆到本地。 这两种方式的主要区别在于&#xff1a;使用 https url 克隆对初学者来说会比较方便&#xff0c;复制 https url 然后到 git Bash 里面直…

纯html+js+css个人博客

首页 <!DOCTYPE HTML> <html> <head> <title>博客</title> <meta http-equiv"Content-Type" content"text/html; charsetutf-8" /> <meta name"viewport" content"widthdevice-width, initial-sca…

E. Vlad and a Pair of Numbers(位运算)

思路&#xff1a;如果x在这一位是1&#xff0c;说明a,b在这一位一个是1一个是0&#xff0c;我们默认a为1&#xff0c;b为0.. 对于n的一些位为0&#xff0c;那么a&#xff0c;b在这一位肯定相同。我们想&#xff0c;如果a和b的和右移一位与x相同&#xff0c;所以1的位置是相同的…

按照模板生成文件,Word 或者 Excel

需求流程&#xff1a; 模板部分如图&#xff1a; Web端技术选用Jfinal 功能实现&#xff1a; 下面代码是调用 --“外部接口”--传参&#xff0c;将前端选中的信息传给后端&#xff0c; 另外将后端返回的文件流下载成文件 package ibasic.web.com.controller;import java.io.Bu…

链表--114. 二叉树展开为链表/medium 理解度C

114. 二叉树展开为链表 1、题目2、题目分析3、复杂度最优解代码示例4、适用场景 1、题目 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而…

ChatGPT更新了Mention功能,集结若干GPTs作战,AI智能体的心智入口;向量数据库的挑战和未来

&#x1f989; AI新闻 &#x1f680; ChatGPT更新了Mention功能&#xff0c;集结若干GPTs作战&#xff0c;AI智能体的心智入口 摘要&#xff1a;OpenAI在ChatGPT中引入了一个新功能&#xff0c;允许用户在聊天时任意一个GPTs&#xff08;即ChatGPT最新推出的AI Agent 智能应用…

Java 对部分接口返回数据进行加密,或其他处理

业务场景&#xff1a;后端项目中分为PC端和移动端接口&#xff0c;移动端为例如 mobile 开头的URl&#xff0c;需求为调用移动端接口时&#xff0c;对返回数据进行加密&#xff0c;PC端不加密 import cn.hutool.core.date.DatePattern; import cn.hutool.json.JSONConfig; impo…

HiveSQL题——排序函数(row_number/rank/dense_rank)

一、窗口函数的知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路&#xff1a; LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowin…

力扣题集(第一弹)

一日练,一日功;一日不练十日空。 学编程离不开刷题&#xff0c;接下来让我们来看几个力扣上的题目。 1. 242. 有效的字母异位词 题目描述 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数…

粒子群算法求解港口泊位调度问题(MATLAB代码)

粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种基于群体智能的优化算法&#xff0c;它通过模拟鸟群或鱼群的行为来寻找最优解。在泊位调度问题中&#xff0c;目标是最小化所有船只在港时间的总和&#xff0c;而PSO算法可以帮助我们找到一…

07. STP的基本配置

文章目录 一. 初识STP1.1. STP概述1.2. STP的出现1.3. STP的作用1.4. STP的专业术语1.5. BPDU的报文格式1.6. STP的选择原则&#xff08;1&#xff09;选择根桥网桥原则&#xff08;2&#xff09;选择根端口原则 1.7. 端口状态1.8. STP报文类型1.9. STP的收敛时间 二. 实验专题…

如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

《幻兽帕鲁》是一款Steam平台热门游戏&#xff0c;开放式大陆和养成式冒险结合&#xff0c;成为2024首款热门游戏&#xff0c;不过由于官方仅发布了Windows版的游戏客户端&#xff0c;Mac用户无法直接玩&#xff0c;好在有Crossover这样的神器&#xff0c;让苹果电脑也能玩上《…

U-Boot学习(6):初始化之_main函数源码分析

在上一节系统初始化之start.S源码分析详解中&#xff0c;我们分析了上电后的代码执行流程&#xff0c;实际上就是对系统特权模式、CP15、向量表等进行配置。最后一步就是进入_main函数了&#xff0c;这个就是U-Boot的主程序了&#xff0c;它完成了对系统内存、堆栈、全局结构体…

非常好用的高效率截图工具-Snipaste

官网:https://zh.snipaste.com/ 帮助文档: https://docs.snipaste.com/zh-cn/

已实现:vue、h5项目如何使用echarts实现雷达图、六边形图表

说实话&#xff0c;要说图表里&#xff0c;最强的应该属于echarts了&#xff0c;不管是接入难度上&#xff0c;还是样式多样性上&#xff0c;还有社区庞大程度上&#xff0c;都是首屈一指的&#xff0c;反观有的人习惯用chart.js了&#xff0c;这个无可厚非&#xff0c;但是如果…

Glide完全解读

一&#xff0c;概述 glide作为android流行的图片加载框架&#xff0c;笔者认为有必要对此完全解读。glide提供了三级缓存、生命周期Destroy后自动移除缓存、自动适配ImageView&#xff0c;以及提供了各种对图片修饰的操作&#xff0c;如剪裁等。本文通过最简单的使用&#xff…

Vim实战:使用 Vim实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

光学3D表面轮廓仪服务超精密抛光技术发展

随着技术的不断进步&#xff0c;精密制造领域对材料表面的处理要求越来越高&#xff0c;超精密抛光技术作为当下表面处理的尖端技术&#xff0c;对各种高精密产品的生产起到了至关重要的作用&#xff0c;已广泛应用于集成电路制造、医疗器械、航空航天、3C电子、汽车、精密模具…