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.hqwc.cn/news/329253.html

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

相关文章

JavaWeb实验报告

JavaWeb实验报告 JavaWeb实验报告 2024 年 1 月 7 日 课程名称&#xff1a; JavaWeb 实验名称&#xff1a; 期末作业 班级&#xff1a; 姓名 同组人&#xff1a; 指导教师评定&#xff…

Qt qDebug基本的使用方法详解

目录 qDebug基本用法输出字符串输出变量值1输出变量值2支持流式输出输出十六进制去除双引号和空格调试输出级别 自定义类型输出自定义日志信息的输出格式示例占位符设置环境变量 关闭QDebug输出Qt工程VS工程 在VS工程中如何查看qDebug输出 DebugView下载 qDebug基本用法 qDebug…

PyTorch|构建自己的卷积神经网络——nn.Sequential()

之前在构建神经网络时&#xff0c;我们一般是采用这种方式&#xff0c;就像这样&#xff1a; class Network1(nn.Module): def __init__(self): super(Network1,self).__init__() self.conv1 nn.Conv2d(in_channels3, out_channels6, kernel_size5) …

[算法应用]dijkstra算法的应用

先看一眼原始dijkstra算法&#xff0c;参考自dijkstra算法C实现_c实现djikstra-CSDN博客 分为三步 找到当前最优的把当前最优的&#xff0c;不参与后面的更新逐个比较是否更新 dijkstra算法的应用 题目大概是要从图上找一条权值不减的路径&#xff0c;且要经过最多的点。 所以…

基于 HTTPS 协议配置 Git 连接 GitHub

文章目录 0.安装 Git1.注册 GitHub 账号2.配置 Git 的用户名和邮箱3.远程连接 GitHub 有两种传输协议4.基于 SSH 协议配置 Git 连接 GitHub5.基于 HTTPS 协议配置 Git 连接 GitHub5.1 创建 GitHub 个人访问令牌5.2 有两种方法将本地仓库和远程仓库关联起来5.2.1 第一种方法&…

精彩推荐 |【Java技术专题】「重塑技术功底」攻破Java技术盲点之剖析动态代理的实现原理和开发指南(上)

攻破Java技术盲点之剖析动态代理的实现原理和开发指南 背景介绍静态代理和动态代理动态代理与静态代理的区别 进入正题重温&#xff1a;静态代理实现静态代理案例静态代理的弊端 重温&#xff1a;动态代理Java动态代理InvocationHandlerJava动态代理的实现下面看具体的代码实例…

特种印制电路技术

1特种印制电路技术现状、分类及特点 2006年&#xff0c;信息产业部(现工信部)电子信息产品管理司将高档PCB产品类型概括为HDI板、多层FPC、刚挠结合板、IC载板、通信背板、特种板材印制板、印制板新品种等种类。但直至目前&#xff0c;在印制电路设计与制造领域还没有形成特种…

Java集合框架深度解析:HashMap

Java中的HashMap是一种基于哈希表的实现&#xff0c;提供了快速的查找性能。在这篇深度解析中&#xff0c;我们将深入探讨HashMap**的实现原理、适用场景、潜在问题以及并发控制策略。 1. HashMap的实现原理 1.1 哈希表 HashMap内部基于哈希表实现&#xff0c;通过散列函数将…

Linux_CentOS_7.9_Oracle11gr2配置数据库及监听服务自启动多方案实操之简易记录

前言: 作为运维保障,都无法准确预估硬件宕机的突发阶段,其生产数据实时在产出,那作为dba数据库服务以及相关Listener的其重要性、必要性就突显而出。这里拿虚拟机试验做个配置记录,便于大家学习参考。 实现方法一: 环境变量值::$ORACLE_HOME= /data/oracle/product/1…

竹云董事长董宁受邀出席2023粤港澳大湾区创新战略学术研讨暨数字科技发展报告会议

科技与创新共舞&#xff0c;数字与产业交融。12月28日&#xff0c;2023 年粤港澳大湾区创新战略学术研讨暨数字科技发展报告会议在深商报告厅举行&#xff0c;深圳市科学技术协会党组成员、驻会副主席石兴中&#xff0c;深圳市商业联合会副会长、深商总会秘书长石庆&#xff0c…

自动驾驶apollo9.0 Dreamview Debug方法

Apollo 9.0 安装&编译方法 # 拉取源码 git clone gitgithub.com:ApolloAuto/apollo.git git checkout v9.0.0# 启动docker bash docker/scripts/dev_start.sh bash docker/scripts/dev_into.sh# 编译project ./apollo.sh build默认启动方式 default mode wget https:…

非交互的下载工具 wget

文章目录 非交互的下载工具 wget命令格式使用范例使用wget下载单个文件使用wget -O下载并以不同的文件名保存使用wget -c断点续传使用wget -o把下载信息存入日志文件 更多信息 非交互的下载工具 wget Linux系统中的wget是一个下载文件&#x1f4c0;的命令行工具&#xff0c;特…