qt学习:Table widget控件

目录

头文件

实战

重新配置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++;
    }

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web3技术革新:重新定义在线体验

互联网的不断演进塑造了我们的数字生活&#xff0c;而Web3技术的涌现正带来一场前所未有的变革。本文将深入探讨Web3技术的创新&#xff0c;以及它如何重新定义和提升我们的在线体验。 Web3技术的基本概念 Web3是互联网的第三个时代&#xff0c;它将去中心化、区块链、智能合约…

计算机二级C语言公共基础知识

数据结构和算法 一 算法 算法是指对解决方案准确而完整的描述&#xff0c;简单的说&#xff0c;算法就是解决问题的操作步骤&#xff08;有一个很著名的公式 “程序数据结构算法”&#xff09; 算法不等于数学上的计算方法&#xff0c;也不等于程序&#xff08;程序可以描述…

Datawhale 组队学习之大模型理论基础Task9 大模型法律

第11章 大模型法律 11.1 简介 此内容主要探讨法律对大型语言模型的开发和部署有何规定。 先看看法律的特点&#xff1a; 法律就如我国法律教材所给出的一样&#xff0c;有依靠国家强制力保证实施的特点。 而法律在大模型中也是不可或缺的&#xff0c;缺少了法律的约束&…

使用Hutool工具包解析、生成XML文件

说明&#xff1a;当我们在工作中需要将数据转为XML文件、或者读取解析XML文件时&#xff0c;使用Hutool工具包中的XMLUtil相关方法是最容易上手的方法&#xff0c;本文介绍如何使用Hutool工具包来解析、生成XML文件。 开始之前&#xff0c;需要导入Hutool工具包的依赖 <de…

通过Demo学WPF—数据绑定(一)✨

前言✨ 想学习WPF&#xff0c;但是看视频教程觉得太耗时间&#xff0c;直接看文档又觉得似懂非懂&#xff0c;因此想通过看Demo代码文档的方式进行学习。 准备✨ 微软官方其实提供了WPF的一些Demo&#xff0c;地址为&#xff1a;microsoft/WPF-Samples: Repository for WPF …

MySQL:MVCC原理详解

MySQL是允许多用户同时操作数据库的&#xff0c;那么就会出现多个事务的并发场景。那么再并发场景会出现很多问题&#xff1a;脏读、不可重复读、幻读的问题。 而解决这些问题所用到的方法就是&#xff1a;MVCC 多版本并发控制。而这个MVCC的实现是基于read_view、undoLog 如…

Linux部署lomp环境,安装typecho、WordPress博客

部署lomp环境&#xff0c;安装typecho、WordPress博客 一、环境要求1.1.版本信息1.2.准备阿里云服务器【新用户免费使用三个月】1.3.准备远程工具【FinalShell】 二、Linux下安装openresty三、Linux下安装Mysql四、安装Apache【此步骤可省略】4.1.安装Apache服务及其扩展包4.2.…

《HTML 简易速速上手小册》第9章:HTML5 新特性(2024 最新版)

文章目录 9.1 HTML5 新增标签和属性9.1.1 基础知识9.1.2 案例 1&#xff1a;创建一个结构化的博客页面9.1.3 案例 2&#xff1a;使用新的表单元素创建事件注册表单9.1.4 案例 3&#xff1a;创建一个具有高级搜索功能的搜索表单 9.2 HTML5 表单增强9.2.1 基础知识9.2.2 案例 1&a…

制冷机组主要组成元件和功能

组主要组成元件的功能如下&#xff1a; 1&#xff09; 压缩机&#xff1a;主要起吸排气作用&#xff0c;将蒸发后的制冷剂气体吸入压缩机并进行压缩,再排到油分离中&#xff1b; 2&#xff09; 减震管&#xff1a;可有效地防止压缩机的震动传递到管路部分&#xff1b; 3&am…

自然语言处理(NLP)技术使用

自然语言处理&#xff08;NLP&#xff09;技术使用 以下是一些自然语言处理&#xff08;NLP&#xff09;技术的例子&#xff1a;以上只是一些NLP技术的例子&#xff0c;还有许多其他的技术和应用&#xff0c;如文本分类、文本生成、问答系统等。NLP技术的发展正逐渐改变人们与计…

c#窗体捕捉方向键

方法1 实现方法参考代码&#xff1a; private void Form1_Load(object sender, EventArgs e){this.KeyPreview true;}protected override bool ProcessDialogKey(Keys keyData){if (keyData Keys.Left || keyData Keys.Right || keyData Keys.Up || keyData Keys.Down){s…

23种设计模式-结构型模式

1.代理模式 在软件开发中,由于一些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称为"代理"的第三者来实现间接访问.该方案对应的设计模式被称为代理模式. 代理模式(Proxy Design Pattern ) 原始定义是&#xff1a;让你能够提供对象的替代品或其占位符。…

ArcGIS Pro 如何计算长度和面积等数据?

要素的几何属性属于比较重要的信息&#xff0c;作为一款专业的GIS软件&#xff0c;ArcGIS Pro自然也是带有计算几何的功能&#xff0c;这里为大家介绍一下计算方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的矢量数据&#xff0c;除了矢…

Apache Commons Collection3.2.1反序列化分析(CC1)

Commons Collections简介 Commons Collections是Apache软件基金会的一个开源项目&#xff0c;它提供了一组可复用的数据结构和算法的实现&#xff0c;旨在扩展和增强Java集合框架&#xff0c;以便更好地满足不同类型应用的需求。该项目包含了多种不同类型的集合类、迭代器、队…

备战蓝桥杯---二分(入门)

话不多说&#xff0c;先来个模板题来回顾一下上次讲的&#xff1a; 下面是AC代码&#xff1a; 下面进入正题&#xff1a; 本题对1&#xff0c;2行与3&#xff0c;4行组合&#xff0c;再用二分查找即可实现n^2logn的复杂度。 下面是AC代码&#xff1a; 接题&#xff1a; 让我们…

【Python】03快速上手爬虫案例三:搞定药师帮

文章目录 前言1、破解验证码2、获取数据 前言 提示&#xff1a;通过用户名、密码、搞定验证码&#xff0c;登录进药师帮网站&#xff0c;然后抓取想要的数据。 爬取数据&#xff0c;最终效果图&#xff1a; 1、破解验证码 使用药师帮测试系统&#xff1a;https://dianrc.ysb…

Linux多线程详解

Linux线程和多线程 Linux线程概念什么是线程二级页表线程异常 Linux进程VS线程进程的多个线程共享进程和线程的关系 Linux线程控制线程创建获取线程ID线程终止 分离线程线程ID及进程地址空间布局线程ID及进程地址空间布局 Linux线程概念 什么是线程 在一个程序里的一个执行路…

Docker(第三部分)

1&#xff0c;Docker复杂安装说明 今天的优势会被明天趋势所取代 一切在云端 安装mysql主从复制 主从复制原理&#xff0c;默认你懂 主从搭建步骤 1&#xff0c;新建主从服务器容器实例3307 docker run -p 3307:3306 --name mysql-master\ -v /mydata/mysql-master/log:…

Spring Boot使用七牛云

一、引入和配置 //maven配置 <dependency><groupId>com.qiniu</groupId><artifactId>qiniu-java-sdk</artifactId><version>7.7.0</version> </dependency>#七牛云application.yml配置 qiniu:# 配置accessKeyaccessKey: &qu…

Flask框架小程序后端分离开发学习笔记《5》简易服务器代码

Flask框架小程序后端分离开发学习笔记《5》 Flask是使用python的后端&#xff0c;由于小程序需要后端开发&#xff0c;遂学习一下后端开发。 简易服务器代码 接口解析那一块很关键&#xff0c;学后端服务器这一块&#xff0c;感觉主要就是学习相应地址的接口怎么处理。 然后…