【QT】QTableWidget

新建项目

制作流程

代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// tableWidget的使用// 第一步,设置列数ui->tableWidget->setColumnCount(3);// 第二步,设置水平表头的的标签ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");// 第三步,设置行数ui->tableWidget->setRowCount(5);// 第四部,设置正文
//    ui->tableWidget->setItem(0, 0, new QTableWidgetItem("亚瑟"));QStringList nameList;nameList << "亚瑟" << "妲己" << "韩信" << "孙悟空" << "孙膑";QList<QString> genderList;genderList << "男" << "女" << "男" << "男" << "男";for (int i = 0; i < 5; i++) {int col = 0;ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));ui->tableWidget->setItem(i, col++, new QTableWidgetItem(genderList.at(i)));// int转QString,number静态函数ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(18 + i)));}}Widget::~Widget()
{delete ui;
}

扩展

打破布局,添加按钮,栅格

目前效果是这样的

点击【添加赵云】,添加赵云信息,点击【删除赵云】,删除赵云信息

代码

#include "widget.h"
#include "ui_widget.h"
#include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);// tableWidget的使用// 第一步,设置列数ui->tableWidget->setColumnCount(3);// 第二步,设置水平表头的的标签ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "姓名" << "性别" << "年龄");// 第三步,设置行数ui->tableWidget->setRowCount(5);// 第四部,设置正文
//    ui->tableWidget->setItem(0, 0, new QTableWidgetItem("亚瑟"));QStringList nameList;nameList << "亚瑟" << "妲己" << "韩信" << "孙悟空" << "孙膑";QList<QString> genderList;genderList << "男" << "女" << "男" << "男" << "男";for (int i = 0; i < 5; i++) {int col = 0;ui->tableWidget->setItem(i, col++, new QTableWidgetItem(nameList[i]));ui->tableWidget->setItem(i, col++, new QTableWidgetItem(genderList.at(i)));// int转QString,number静态函数ui->tableWidget->setItem(i, col++, new QTableWidgetItem(QString::number(18 + i)));}// 点击添加赵云connect(ui->addButton, &QPushButton::clicked, this, [=]() {// 如果有赵云,就不添加bool flag = ui->tableWidget->findItems("赵云", Qt::MatchExactly).isEmpty();// 存在if (flag == false) {QMessageBox::warning(this, "警告", "已经有赵云,添加失败");} else {// 添加一行ui->tableWidget->insertRow(0);ui->tableWidget->setItem(0, 0, new QTableWidgetItem("赵云"));ui->tableWidget->setItem(0, 1, new QTableWidgetItem("男"));ui->tableWidget->setItem(0, 2, new QTableWidgetItem(QString::number(25)));}});// 点击删除赵云connect(ui->delButton, &QPushButton::clicked, this, [=]() {// 如果没有赵云,就不删除bool flag = ui->tableWidget->findItems("赵云", Qt::MatchExactly).isEmpty();// 不存在,无法删除if (flag) {QMessageBox::warning(this, "警告", "没有有赵云,删除失败");} else {// 找到位置,删除,找到第一个int row = ui->tableWidget->findItems("赵云", Qt::MatchExactly).first()->row();ui->tableWidget->removeRow(row);}});}Widget::~Widget()
{delete ui;
}

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

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

相关文章

嵌入式实时操作系统的设计与开发(互斥量学习)

一个无论多么小的系统&#xff0c;都会有大系统的缩影&#xff0c;就像俗话说“麻雀虽小五脏俱全”。 嵌入式实时操作系统中除了基本调度机制&#xff08;创建线程、调度线程、挂起线程等&#xff09;&#xff0c;事件处理机制&#xff08;中断管理、时钟管理&#xff09;、内…

拦截器以及统一功能的实现

目录 引言 实现一个简单的拦截器 拦截器小结 统一访问前缀 统一异常处理 统一返回参数 ControllerAdvice 引言 HandlerInterceptor是Spring MVC框架提供的一个拦截器接口&#xff0c;它用于对请求进行拦截和处理。在Spring MVC中&#xff0c;拦截器可以用于实现一些通用的功能…

Server Name Indication(SNI),HTTP/TLS握手过程解析

Server Name Indication&#xff08;SNI&#xff09;是一种TLS扩展&#xff0c;用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前&#xff0c;客户端在建立TLS连接时只能发送单个IP地址&#xff0c;并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…

旁注、目录越权、跨库查询、cdn绕过

原理&#xff1a; 搭建网站多IP多端口&#xff0c;更多一个域名多网站&#xff0c;IIS的在属性-高级里面设置主机头设置域名&#xff0c;域名是收费的需要自己买一个 旁注&#xff1a;在同一服务器上有多个站点&#xff0c;要攻击的这个站点假设没有漏洞&#xff0c;可以攻击…

设计模式中继承和组合的总结

一、什么是继承 继承就是子类继承父类的特征和行为&#xff0c;使得子类具有和父类一样的属性和方法&#xff0c;在Java中通过extends关键字来实现继承。 优点 继承最大的好处是可以代码复用。针对多个类有相同的属性和方法&#xff0c;可以将这些相同代码抽取出来形成统一父…

Kingbase备份与还原及表的约束(Kylin)

备份与还原 逻辑备份是对整个数据库好数据库中的部分对象利用逻辑备份工具导出数据到备份文件在需要数据恢复的情况下利用逻辑还原工具把备份文件恢复到数据库中 使用场景 逻辑备份主要用于数据库逻辑错误的恢复&#xff0c;恢复后对其他数据没有太大影响逻辑备份可用于在大…

vue重修之路由【下】

文章目录 版权声明路由重定向、404&#xff0c;路由模式重定向404路由模式 声明式导航vue-routerrouter-link-active 和 router-link-exact-active定制router-link-active 和 router-link-exact-active跳转传参两种跳转传参总结 编程式导航两种语法路由传参path路径跳转传参nam…

python3 修行之基础篇(一)python 简介

文章目录 python的发展史Python的特点查看 Python 版本简单Python3.x程序应用 python的发展史 Python 的发展历史可以追溯到上世纪80年代末期。以下是Python的一些重要的语言简介。 1989年&#xff1a; Guido van Rossum 在圣诞节期间开始设计 Python。1991年&#xff1a; Gu…

c++ 并发与多线程(12)线程安全的单例模式-2

一、内部静态变量的懒汉单例(C++11 线程安全) #include <iostream> #include <thread> #include <vector>class Single { public:// 获取单实例对象static Single& GetInstance();// 打印实例地址void Print();private:// 私有构造函数,防止外部创建对…

RHCE---搭建博客网站

一.实验要求&#xff1a; Server-NFS-DNS主机配置NFS服务器&#xff0c;将博客网站资源文件共享给Server-web主机&#xff0c;Server-NFS-DNS主机配置DNS Server-web主机配置web服务&#xff0c;通过域名www.openlab.com可以访问到自建的博客网站 二.准备工作 创建两台虚拟机…

python之客户端和服务端的例子

python之客户端和服务端的例子 1&#xff09;TCP服务器端 以下是一个简单的Python TCP服务器端的示例代码&#xff1a; import socket # 创建TCP套接字并绑定到本地地址和端口 server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind((lo…

C++11:智能指针(二)实战篇(附上实例)

目录 1、unique_ptr&#xff1a; 2、shared_ptr&#xff1a; 3、weak_ptr&#xff1a; 4、如何处理循环引用问题&#xff1f; C智能指针是一种用于管理动态分配的对象的指针&#xff0c;它可以自动释放所指向的对象&#xff0c;避免内存泄漏和悬空指针的问题。 C标准库提供…

Redis的优势

高性能 Redis是一种基于内存的数据存储系统&#xff0c;读写性能非常高&#xff0c;因此适用于对性能要求较高的应用场景。 数据结构丰富 Redis支持多种数据结构&#xff0c;如字符串、列表、集合、散列、有序集合等&#xff0c;可以满足不同的业务需求。还有一些特殊数据结…

Linux流量监控

yum install -y iptrafiptraf-ng -d ens33

关于近期IP-Guard新版本客户端重复发送邮件的问题处理说明

关于近期新版本客户端重复发送邮件的问题处理说明 一、问题描述 近期部分客户反馈,升级到新版本的客户端(4.81.341.0、4.82.621.0及以上),使用SMTP协议发送邮件时,会出现重复发送邮件的情况,主要表现为以下两种现象: Outlook发送包含大量收件人的邮件时,收件人邮箱可能…

11 结构型模式- 代理模式

结构性模式一共包括七种&#xff1a; 代理模式、桥接模式、装饰者模式、适配器模式、门面(外观)模式、组合模式、和享元模式。 1 代理模式介绍 软件开发中的代理&#xff1a; 代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到了中介的作用,它去掉客…

LSTM 与 GRU

RNN无法处理长距离依赖问题&#xff0c;通俗点就是不能处理一些较长的序列数据&#xff0c;那么今天就来介绍一下两个能处理长距离依赖问题地RNN变种结构&#xff0c;LSTM和GRU。 1. LSTM&#xff08;Long short-term memory&#xff09; 1.1 LSTM结构 上左图是普通RNN结构图…

Windows下Eclipse C/C++开发环境配置教程

1.下载安装Eclipse 官网下载eclipse-installer&#xff08;eclipse下载器&#xff09;&#xff0c;或者官方下载对应版本zip。 本文示例&#xff1a; Eclipse IDE for C/C Developers Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse ID…

#Day Day Plan# 《NCB_PCI_Express_Base 5.0.1.0》pdf 译文笔记

目录 前言碎语 第4章 Physical Layer Logic Block S4.1 Introduction S4.2 Logical sub-block S4.2.4 Link Initialization and Traning S4.2.4.3 Electrical Idle Sequence(EIOS) 译文&#xff1a;EIOS 电器空闲Ordered Set S4.2.7 Link Training and Status State R…

C语言-面试题实现有序序列合并

要求&#xff1a; a.输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤n,m≤1000 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤val≤30000 输入描述&#xff1a; 1.输入包含三行&#xff0c; 2.第一行包含两个正整数n, m&am…