qt三大控件

news2024/9/28 20:17:13

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);
        }
     });

}

 

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

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

相关文章

如何建立标准且有效的评审流程?6个重点

为了进一步提高项目质量&#xff0c;项目评审管理需要遵循一定的标准化流程。而建立标准且有效的评审流程&#xff0c;能够快速提高项目质量和效率&#xff0c;优化团队协作&#xff0c;降低风险&#xff0c;提高项目成功率。如果组织没有建立起标准化的评审流程&#xff0c;就…

C++笔记之cout高亮输出以及纯C++实现一个彩色时钟

C笔记之cout高亮输出以及纯C实现一个彩色时钟 code review! 文章目录 C\笔记之cout高亮输出以及纯C\实现一个彩色时钟一.cout高亮输出1.1.运行1.2.代码一1.3.代码二1.4.重置终端的文本格式到默认设置说明 二.纯C\实现一个彩色时钟2.1.运行2.2.main.cc2.3.cout带颜色打印输出技…

常用Python自动化测试框架有哪些?

随着技术的进步和自动化技术的出现&#xff0c;市面上出现了一些自动化测试框架。只需要进行一些适用性和效率参数的调整&#xff0c;这些自动化测试框架就能够开箱即用&#xff0c;大大节省了测试时间。而且由于这些框架被广泛使用&#xff0c;他们具有很好的健壮性&#xff0…

蓝桥杯练习题(一)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;一&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

ts axios 指定返回值类型,返回数据类型不确定该怎么办 typescript

ts axios 指定返回值类型&#xff0c;返回数据类型不确定该怎么办 typescript 转到 ts 以来&#xff0c;一直有个问题困扰着我&#xff0c;就是每次用 axios 获取数据时&#xff0c;返回值 res 的类型都不能确定&#xff0c;这就导致编辑器一直提示我&#xff1a; 原因 原因是…

哪些软件可以把扫描的表格转成EXCEL

也可点击“软件下载” 一、点击“软件下载”下载安装软件后使用&#xff0c;或直接用网页版添加图片再点击“提交识别”来转换。 二、软件安装成功后将待识别的图片添加进去&#xff0c;点击“识别全部”即可&#xff0c;非常简单。

基于SpringBoot大药房管理系统(程序+数据库+文档)

&#x1f345;点赞收藏关注 → 私信领取本源代码、数据库&#x1f345; 本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目希望你能有所收获&#xff0c;少走一些弯路。&#x1f345;关注我不迷路&#x1f345;摘 要 伴随着全球信息化发展&…

K8S-服务访问

1 Ingress简介 原理解析 Ingress是授权入站连接到达集群服务的规则集合。从外部流量调度到nodeport上的service从service调度到ingress-controlleringress-controller根据ingress[Pod]中的定义&#xff08;虚拟主机或者后端的url&#xff09;根据虚拟主机名直接调度到后端的一…

[java小贴士]关于double类型进行运算时有误差的相等判断的替代方式

double类型在进行运算时会产生误差, 在不能进行相等判断时可以用绝对值在小于某个范围来替代相等; 如果没有进行运算, 是查询得到或者直接赋值则可以正常进行判断相等

1868_C语言单向链表的实现

Grey 全部学习内容汇总&#xff1a; GitHub - GreyZhang/c_basic: little bits of c. 1868_C语言中简单的链表实现 简单整理一下链表的实现&#xff0c;这一次结合前面看到的一些代码简单修改做一个小结。 主题由来介绍 以前工作之中链表的使用其实不多&#xff0c;主要是…

leetcode 每日一题 2024年01月07日 赎金信

题目 给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入…

NCC基础开发技能培训

YonBuilder for NCC 是一个带插件的eclipse工具&#xff0c;跟eclipse没什么区别 NC Cloud2021.11版本开发环境搭建改动 https://nccdev.yonyou.com/article/detail/495 不管是NC Cloud 新手还是老NC开发&#xff0c;在开发NC Cloud时开发环境搭建必看&#xff01;&#xff…

小猫踩球Scratch-第14届蓝桥杯Scratch省赛真题第2题

2. 小猫踩球&#xff08;40分&#xff09; 评判标准&#xff1a; 10分&#xff1a;满足"具体要求"中的1&#xff09;&#xff1b; 15分&#xff1a;满足"具体要求"中的2&#xff09;&#xff1b; 15分&#xff0c;满足"具体要求"中的3&#x…

设计模式之享元模式【结构型模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

【金融数据分析】计算2023年沪深300成分股涨跌排行榜

前言 之前的文章中我们已经获取了沪深300成分股的详细个股数据&#xff0c;本文我们来计算一下2023年成分股的涨跌排行榜。 首先看一下效果 详细代码 首先说一下后端的代码&#xff0c;涨跌幅的计算公式如下&#xff1a; &#xff08;2023年最后一天的收盘价-2023年第一天的…

IMS基本架构

IP Multimedia Core Network Subsystem (IMS)商用已久&#xff0c;相对于CS domain的语音方案&#xff0c;IMS则是基于IETF定义的会话控制功能与多媒体传输功能通过IP-CAN实现的 全IP完整语音解决方案。 IMS能为无线和有线用户实现语音、视频、消息、数据等服务。便于运营商通过…

【C++】深入了解构造函数之初始化列表

目录 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 2&#xff09;不同成员变量赋值 2、初始化列表 一、再谈构造函数 1、引入 1&#xff09;构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值…

【小沐学C++】C++ 实现鼠标键盘钩子HOOK

文章目录 1、简介2、相关函数2.1 SetWindowsHookEx2.2 UnhookWindowsHookEx2.3 CallNextHookEx 3、相关结构体3.1 KBDLLHOOKSTRUCT3.2 MSLLHOOKSTRUCT 4、挂钩过程5、代码测试5.1 代码1 结语 1、简介 https://learn.microsoft.com/zh-cn/windows/win32/winmsg/about-hooks 挂…

Kali Linux——获取root权限

目录 一、设置root密码 【操作命令】 【操作实例】 二、临时获取root权限 【操作命令】 【操作实例】 三、提升用户到root 1、获取root权限 2、进入/etc/passwd 3、查看root账号ID 4、找到需要修改的用户 5、输入i&#xff0c;进入编辑模式 6、把用户的ID改成跟r…

专为Mac用户设计的思维导图软件MindNode 2023 for Mac助您激发创意!

在现代快节奏的生活中&#xff0c;我们经常需要整理思绪、规划项目、记录灵感。而思维导图作为一种高效的思维工具&#xff0c;能够帮助我们更好地整理和展现思维。现在&#xff0c;我们介绍一款强大而直观的思维导图软件——MindNode 2023 for Mac&#xff0c;助您拓展思维边界…