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()<<"力量"<<"叠加");
    //添加顶层级别的Item
    ui->treeWidget->addTopLevelItem(liItem);

    QTreeWidgetItem * minItem=new QTreeWidgetItem(QStringList()<<"敏捷"<<"叠加");
    //添加顶层级别的Item
    ui->treeWidget->addTopLevelItem(minItem);

    QTreeWidgetItem * zhiItem=new QTreeWidgetItem(QStringList()<<"智力"<<"叠加");
    //添加顶层级别的Item
    ui->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转为QString
         ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(18+i) ));
     }

 

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

//点击添加赵云  实现添加
     connect(ui->btn_add,&QPushButton::clicked,[=](){
         //如果有赵云了,那就不添加
        bool isEmpty= ui->tableWidget->findItems("赵云",Qt::MatchExactly).isEmpty();//true
        if(!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);
        }
     });

}

 

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

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

相关文章

Android AAudio

文章目录 基本概念启用流程基本流程HAL层对接数据流计时模型调试 基本概念 AAudio 是 Android 8.0 版本中引入的一种音频 API。 AAudio 提供了一个低延迟数据路径。在 EXCLUSIVE 模式下&#xff0c;使用该功能可将客户端应用代码直接写入与 ALSA 驱动程序共享的内存映射缓冲区…

HarmonyOS4.0系统性深入开发15Want概述

Want概述 Want的定义与用途 Want是对象间信息传递的载体&#xff0c;可以用于应用组件间的信息传递。其使用场景之一是作为startAbility()的参数&#xff0c;包含了指定的启动目标以及启动时需携带的相关数据&#xff0c;如bundleName和abilityName字段分别指明目标Ability所…

模拟算法(模拟算法 == 依葫芦画瓢)万字

模拟算法 基本思想引入算法题替换所有的问号提莫攻击Z字形变换外观数列数青蛙 基本思想 模拟算法 依葫芦画瓢解题思维要么通俗易懂&#xff0c;要么就是找规律&#xff0c;主要难度在于将思路转换为代码。 特点&#xff1a;相对于其他算法思维&#xff0c;思路比较简单&#x…

线性代数 --- 为什么LU分解中L矩阵的行列式一定等于正负1?

以下是关于下三角矩阵L的行列式一定等于-1的一些说明 笔者的一些话(写在最前面)&#xff1a; 这是一篇小文&#xff0c;是我写的关于求解矩阵行列式的一篇文章中的一部分。之所以把这一段专门提溜出来&#xff0c;是因为这一段相对于原文是可以完全独立的&#xff0c;也是因为我…

YOLOv5改进 | 检测头篇 | 增加辅助检测头利用AFPN改进Head(附详细修改教程)

一、本文介绍 本文给大家带来的改进机制是利用今年新推出的AFPN(渐近特征金字塔网络)来优化检测头,AFPN的核心思想是通过引入一种渐近的特征融合策略,将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于减小不同层次特征之间的语义差距,提高特征…

在VM下使用Composer完成快照方式的软件制作

Composer允许您构建软件、应用程序、偏好设置文件或是文档的安装包&#xff0c;安装包可以部署到远程电脑或是作为镜像流程的一部分。构建软件包的第一步就是创建包源&#xff0c;根据要打包的软件&#xff0c;Composer允许您监视软件的安装和使用驱动器上已存在的文件来创建包…

python豆瓣实例,抓取多页数据-应用到知识点:随时数,xpath,间隔请求sleep

源代码: <!DOCTYPE html> <html lang="zh-CN" class="ua-windows ua-webkit"> <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="renderer" content=&q…

计算机网络-VLAN原理与配置

之前我们学习了以太网的基础知识&#xff0c;了解了网络交换设备的发展&#xff0c;交换机的工作原理&#xff0c;广播域和冲突域。 一、概述 还简单了解了以太网的CSMA/CD通讯机制&#xff0c;以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection&…

【LMM 014】NExT-GPT:能够输入和生成任意模态的多模态大模型

论文标题&#xff1a;NExT-GPT:Any-to-Any Multimodal Large Language Model 论文作者&#xff1a;Shengqiong Wu, Hao Fei*, Leigang Qu, Wei Ji, Tat-Seng Chua 作者单位&#xff1a; NExT Lab, National University of Singapore 论文原文&#xff1a;https://arxiv.org/abs…

学习笔记——C++运算符之逻辑运算符

作用&#xff1a;用于根据表达式的真值返回真值或假值 逻辑运算符有以下符号&#xff1a; #include<bits/stdc.h> using namespace std; int main(){// 逻辑运算符 非 !int a10;//在c中&#xff0c;除了0均是真 cout<<!a<<endl;//0 cout<<!!a<<…

《MySQL系列-InnoDB引擎06》MySQL锁介绍

文章目录 第六章 锁1 什么是锁2 lock与latch3 InnoDB存储引擎中的锁3.1 锁的类型3.2 一致性非锁定读3.3 一致性锁定读3.4 自增长与锁3.5 外键和锁 4 锁的算法4.1 行锁的三种算法4.2 解决Phantom Problem 5 锁问题5.1 脏读5.2 不可重复读5.3 丢失更新 6 阻塞7 死锁 第六章 锁 开…

解决使用localhost或127.0.01模拟CORS失效

解决使用localhost或127.0.01模拟CORS失效 前言问题发现问题解决 前言 CORS (Cross-Origin Resource Sharing) 指的是一种机制&#xff0c;它允许不同源的网页请求访问另一个源服务器上的某些资源。通常情况下&#xff0c;如果 JavaScript 代码在一个源中发起了 AJAX 请求&…

CentOS使用docker安装mysql并使用navicat 远程链接

这篇文章没用开启mysql的挂载功能&#xff0c;如果想开启的话可以和我的下篇文章结合着看。 CentOS中开启mysql挂载-CSDN博客 docker在之前的文章中已经安装完成了 这里输入命令查询已被上传的MySQL镜像 docker search mysql这里stars代表点赞数&#xff0c;official代表官…

MvvmToolkit的使用

背景&#xff1a;MvvmLight不更新了&#xff0c;用Toolkit代替 1、首先下载好社区版本的NuGet包 2、ViewModel中需要继承ObservableObject&#xff0c;查看ObservableObject可以看到里面有实现好InotifyPropertyChanged。 3、对于属性的set&#xff0c;可以简写成一行&#xff…

weak_ptr如何能做到解决循环引用又能传递参数呢?

引子&#xff1a;今天在看CLR via C#的时候看到C#的垃圾回收算法--引用跟踪算法的时候想到以下几个问题。 一、引用计数法存在的问题 一般引用计数法存在的问题就是不好处理循环引用的问题&#xff0c;但是C不是有weak_ptr吗&#xff1f; 这个引用跟踪的垃圾回收算法看起来还…

系统学英语 — 音标音节 — 能读就能写

目录 文章目录 目录概览12 个单元音8 个双元音28 个辅音音节 概览 12 个单元音 序号发音音标助记字母组合备注1拖长音 前腔[i:]eate、ea、ee、ie2短促音 前腔[i]bige、i、y3拖长音 后腔[a:]aska、ar4短促音 中腔[ʌ]runu、o、ou、oo5拖长音 中腔[ə:]earlyer、ir、or、ur…

2.3_6 用信号量实现进程互斥、同步、前驱关系

2.3_6 用信号量实现进程互斥、同步、前驱关系 #mermaid-svg-fj0wp6tJGfadcT8h {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fj0wp6tJGfadcT8h .error-icon{fill:#552222;}#mermaid-svg-fj0wp6tJGfadcT8h .error-t…

数据结构:二叉树

目录 1.树的定义 2.二叉树 2.1 满二叉树 2.2 完全二叉树 2.3 二叉搜索树 2.4 平衡二叉搜索树 3.二叉树的存储 3.1 数组存储 3.2 链表存储 代码&#xff1a; 4.二叉树的遍历 4.1 深度优先遍历 4.1.1 递归 4.1.2 迭代 4.2 广度优先遍历(层序遍历) 1.树的定义 树是计…

信息学奥赛之《向量几何一文通》

Geometry π \pi π&#xff1a; arccos ⁡ ( − 1 ) \arccos(-1) arccos(−1)余弦定理&#xff1a;对于任意三角形&#xff08;三边长为 a , b , c a,b,c a,b,c&#xff09;&#xff0c;则有 c 2 a 2 b 2 − 2 a b cos ⁡ θ c^2a^2b^2-2ab\cos_{\theta} c2a2b2−2abcosθ…

C++每日一练(12):输出杨辉三角的前N行

题目描述 输出杨辉三角的前N行(N<10)。 输入 输入只有一行&#xff0c;包括1个整数N。(N<10) 输出 输出只有N行. 输入样例 5 输出样例 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 参考答案 #include<bits/stdc.h> using namespace std; int a[11][10]; int main(){int n;a[1]…