qt三大控件

1.QListWidget控件

先在ui界面将 QListWidget拖出来竖直对齐

再去代码中实现文本插入

两种插入方式

方法1

    //listWidget使用       有左右中间对齐需求QListWidgetItem * item=new QListWidgetItem("床前明月光");
//    //上面只是独立的一句话,没有关联起来ui->listWidget->addItem(item);(关联起来)
//    //设置文本对齐方式     item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);

方法2

//    无左右中间对齐需求//QStringlist==QList<QString>==list<string>  //容器QStringList list;list<<"窗前明月光"<<"疑是地上霜"<<"举头望明月"<<"低头思故乡";//左插法ui->listWidget->addItems(list);//但这种办法没法设置居中  居中是由上面的QListWidgetItem的
//    setTextAlignment  because QStringList只是一种容器

区别在于第一种可以设置居中左右

居中是由上面的QListWidgetItem的
setTextAlignment 不行 because QStringList只是一种容器 

 2.QTreeWidget控件

和上一个一样,先再ui界面创建一个QTreeWidge组件,然后拖进去居中

代码像树一样   分为三个步骤

1.treeWidget 树控件
ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");
2.Item创建
QTreeWidgetItem * liItem=new QTreeWidgetItem(QStringList()<<"力量"<<"叠加");
3.创建子Item  挂载到顶层的Item上    
QStringList heroL1;    
heroL1<<"廖天华"<<"大招:猪鼻攻击,无视对方所有伤害,三秒无敌";    
QTreeWidgetItem * l1=new QTreeWidgetItem(heroL1);    
liItem->addChild(l1);
//treeWidget 树控件ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");//2.Item创建QTreeWidgetItem * liItem=new QTreeWidgetItem(QStringList()<<"力量"<<"叠加");//添加顶层级别的Itemui->treeWidget->addTopLevelItem(liItem);QTreeWidgetItem * minItem=new QTreeWidgetItem(QStringList()<<"敏捷"<<"叠加");//添加顶层级别的Itemui->treeWidget->addTopLevelItem(minItem);QTreeWidgetItem * zhiItem=new QTreeWidgetItem(QStringList()<<"智力"<<"叠加");//添加顶层级别的Itemui->treeWidget->addTopLevelItem(zhiItem);//3.创建子Item  挂载到顶层的Item上QStringList heroL1;heroL1<<"廖天华"<<"大招:猪鼻攻击,无视对方所有伤害,三秒无敌";QTreeWidgetItem * l1=new QTreeWidgetItem(heroL1);//写在外面liItem->addChild(l1);QStringList heroL2;heroL2<<"朱星"<<"大招:假寐,你以为我睡了,其实我在心里睁眼睛";QTreeWidgetItem * l2=new QTreeWidgetItem(heroL2);liItem->addChild(l2);QStringList heroL3;heroL3<<"秦晓峰"<<"大招:失去味觉嗅觉,身体出现异常,脊椎不舒服,开始躺地上讹人";QTreeWidgetItem * l3=new QTreeWidgetItem(heroL3);zhiItem->addChild(l3);QStringList heroL4;heroL4<<"郑江博"<<"大招:懂得都懂";QTreeWidgetItem * l4=new QTreeWidgetItem(heroL4);zhiItem->addChild(l4);QStringList heroL5;heroL5<<"张驰"<<"大招:沉默";QTreeWidgetItem * l5=new QTreeWidgetItem(heroL5);minItem->addChild(l5);QStringList heroL6;heroL6<<"刘波"<<"大招:改写你们的大招";QTreeWidgetItem * l6=new QTreeWidgetItem(heroL6);minItem->addChild(l6);

 实现效果      

3.QTableWidget控件

和上一个一样,先再ui界面创建一个QTableWidge组件,然后拖进去居中

代码如下:

    //tableWidget的使用       按照逻辑由上到下
//    1设置列数   ui->tableWidget->setColumnCount(3);
//    2.设置水平表头标签    
ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
//    3.设置行数    ui->tableWidget->setRowCount(5);
//    4.设置正文   填数据ui->tableWidget->setItem(0,0,new QTableWidgetItem("亚瑟"));

这里很巧妙,用到了一个for循环进行数据填写

//准备容器放名称QStringList nameList;nameList<<"亚瑟"<<"妲己"<<"韩信"<<"孙悟空"<<"瑶姐";//准备名称放性别QList<QString> sexList;sexList<<"男"<<"女"<<"男"<<"男"<<"女";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(sexList.at(i)));//如何将Int转为QStringui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(18+i) ));}

 

追加一个知识  按键再这张表格里面删除和添加

//点击添加赵云  实现添加connect(ui->btn_add,&QPushButton::clicked,[=](){//如果有赵云了,那就不添加bool isEmpty= ui->tableWidget->findItems("赵云",Qt::MatchExactly).isEmpty();//trueif(!isEmpty)//false{QMessageBox::warning(this,"警告","已经有赵云,添加失败");}else{ui->tableWidget->insertRow(0);ui->tableWidget->setItem(0,0,new QTableWidgetItem(QString("赵云")));ui->tableWidget->setItem(0,1,new QTableWidgetItem(QString("男")));ui->tableWidget->setItem(0,2,new QTableWidgetItem(QString::number(30)));}});//点击删除赵云  实现删除connect(ui->btn_del,&QPushButton::clicked,[=](){//如果没赵云了,那就不删除bool isEmpty= ui->tableWidget->findItems("赵云",Qt::MatchExactly).isEmpty();if(isEmpty){QMessageBox::warning(this,"警告","没有赵云,删除失败");}else{int rowNum= ui->tableWidget->findItems("赵云",Qt::MatchExactly).first()->row();//得到行号ui->tableWidget->removeRow(rowNum);}});}

 

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

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

相关文章

贯穿设计模式-责任链模式

样例代码 涉及到的项目样例代码均可以从https://github.com/WeiXiao-Hyy/Design-Patterns.git获取 需求 实时地&#xff0c;根据city&#xff0c;sex&#xff0c;product字段进行业务投放&#xff0c;比如&#xff1a;北京的男生&#xff1b;四川的电脑等等 → 责任链模式&…

基于SSM的《数据库系统原理》课程平台

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

2024--Django平台开发-Web框架和Django基础(二)

day02 Web框架和Django基础 今日概要&#xff1a; 网络底层引入&#xff0c;到底什么是web框架&#xff1f;常见web框架对比django快速上手&#xff08;创建网站&#xff09;常见操作&#xff1a;虚拟环境、django项目、多app应用、纯净版逐点剖析&#xff1a;路由、视图、模…

Java Swing手搓童年坦克大战游戏(I)

前言 业余偶尔对游戏有些兴趣&#xff0c;不过这样的时代&#xff0c;硬件软件飞速进步&#xff0c;2D游戏画面都无比精美&#xff0c;之前的8bit像素游戏时代早就过去了&#xff0c;不过那时候有许多让人印象深刻的游戏比如魂斗罗、超级玛丽、坦克大战(Battle City)等等。 学…

MCS-51单片机的基本结构

目录 一.单片机的逻辑结构 1.单片机的基本结构 2.引脚 3.中断系统 4.时钟电路 5.时序 6.典型指令的取指、执行时序 7.80C51中定时器/计数器 二.单片机的复位 三.程序的执行方式 1.单步执行方式 2.低功耗操作方式 3.EPROM编程和校验方式 首先补充一个知识点&#x…

ASP.NET Core中实现个人资料上传图片功能

当用户需要在ASP.NET Core中实现修改个人资料的功能时&#xff0c;其中一个常见的需求就是允许上传个人头像图片。下面将详细介绍如何在ASP.NET Core中实现修改个人资料上传图片的功能。 步骤一&#xff1a;控制器中添加一个HttpPost方法 首先&#xff0c;我们在控制器中添加…

案例099:基于微信小程序的外卖小程序的研究与开发

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

竞赛保研 基于深度学习的人脸专注度检测计算系统 - opencv python cnn

文章目录 1 前言2 相关技术2.1CNN简介2.2 人脸识别算法2.3专注检测原理2.4 OpenCV 3 功能介绍3.1人脸录入功能3.2 人脸识别3.3 人脸专注度检测3.4 识别记录 4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于深度学习的人脸专注度…

UE5 给自己的数字人重定向Mixamo动画

1 、准备动画骨格文件&#xff0c;动画文件&#xff0c;下面是Mixamo动画素材下载网站Mixamo动画骨格文件下载网站https://www.mixamo.com/2、下载动画骨格文件&#xff0c;打Mixamo网站&#xff0c;选择Characters骨格菜单&#xff0c;在下面找到对应的骨格。如下图所示&#…

Qt pro文件

1. 项目通常结构 2.pri文件 pri文件可定义通用的宏&#xff0c;例如创建一个COMMON.pri文件内容为 COMMON_PATH D:\MyData 然后其它pri或者pro文件如APPTemplate.pro文件中通过添加include(Common.pri) &#xff0c;QtCreator就会自动在项目结构树里面创建对应的节点 3.变量…

Robot Operating System 2: Design, Architecture, and Uses In The Wild

Robot Operating System 2: Design, Architecture, and Uses In The Wild (机器人操作系统 2&#xff1a;设计、架构和实际应用) 摘要&#xff1a;随着机器人在广泛的商业用例中的部署&#xff0c;机器人革命的下一章正在顺利进行。即使在无数的应用程序和环境中&#xff0c;也…

2023年12月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:统计指定范围里的数 给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。 时间限制:1000 内存限制:65536 输入 第一行1个整数n,分别表示序列的长度。(0 < n ≤…

用邮件及时获取变更的公网IP--------python爬虫+打包成exe文件

参考获取PC机公网IP并发送至邮箱 零、找一个发送邮件的邮箱 本文用QQ邮箱为发送邮箱&#xff0c;网易等邮箱一般也有这个功能&#xff0c;代码也是通用的。 第一步&#xff1a;在设置中找到账户&#xff0c;找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务&#xff0c;点击获…

HttpRunner的测试用例分层机制

测试用例分层介绍&#xff1a; 在接口自动化测试维护过程中&#xff0c;由于测试用例的增加和需求变更导致测试用例的调整&#xff0c;使自动化测试用例的维护非常麻烦&#xff0c;直接关系到自动化测试能否持续有效地在项目中开展。 概括来说&#xff0c;测试用例分层机制的核…

C语言基础知识(6):UDP网络编程

UDP 是不具有可靠性的数据报协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下&#xff0c;虽然可以确保发送消息的大小&#xff0c;却不能保证消息一定会到达。因此&#xff0c;应用有时会根据自己的需要进行重发处理。 1.UDP协议的主要特点&#xff1a; &#xf…

c#调试程序一次启动两个工程(多个工程)

概述 c# - Visual Studio : debug multiple projects at the same time? 以在解决方案中设置多个启动项目(右键单击解决方案&#xff0c;转到设置启动项目&#xff0c;选择多个启动项目)&#xff0c;并为包含在解决方案(无、开始、不调试就开始)。如果您将多个项目设置为开始…

Oracle文件自动“减肥”记

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…

用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!

最近 ChatGPT 对 Plus 用户逐步开放一些多模态的功能&#xff0c;包括 &#xff08;图像生成&#xff09;、 GPT-4V&#xff08;图像识别&#xff09;等&#xff0c;很多网友乐此不疲地对这些新功能进行试用&#xff0c; 目前已经解锁了不少有趣的玩法&#xff0c;我将这些好玩…

C#,入门教程(09)——运算符的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(08)——基本数据类型及使用的基础知识https://blog.csdn.net/beijinghorn/article/details/123906998 一、算术运算符号 算术运算符号包括&#xff1a;四则运算 加 , 减-, 乘*, 除/与取模%。 // 加法&#xff0c;运算 int va 1 …

CSS3 边框border、outline、box-shadow

1 border 语法&#xff1a;border: width style color 2 outline 语法&#xff1a;outline: width style color 2.1 outline-offet MDN解释&#xff1a;用于设置outline与一个元素边缘或边框之间的间隙 即&#xff1a;设置outline相对border外边缘的偏移&#xff0c;可以为…