QTreeWidget简单用法「建议收藏」

QTreeWidget简单用法「建议收藏」1、voidQTreeWidget::setHeaderLabels(constQStringList&labels)设置表头,QStringList有几项,表头就有多少列2、voidQHeaderView::setSortIndicatorShown(boolshow)Thispropertyholdswhetherthesortindicatoris

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

1、void QTreeWidget::setHeaderLabels(const QStringList & labels)

设置表头,QStringList有几项,表头就有多少列

2、void QHeaderView::setSortIndicatorShown(bool show)

This property holds whether the sort indicator is shown.
By default, this property is false.(这里有误,经测试默认应该是true)

译:设置表头是否显示排序指示符,SortIndicator为水平标题栏文字旁边的小三角符号

如果要显示排序指示符,那么这个函数没必要调用

3、void QHeaderView::setSortIndicator(int logicalIndex, Qt::SortOrder order)

Sets the sort indicator for the section specified by the given logicalIndex in the direction specified by order, and removes the sort indicator from any other section that was showing it.

译:为指定的 logicalIndex字段设置排序指示符(如果是升序,就是朝上的小三角;如果是降序,就是朝下的小三角)

同时在其他的字段位置将不显示排序指示符(其实任何情况下只能在一个字段位置处显示排序指示符)。

这只是一个初始化的设置,后期用户的操作可以改变这种设置。

4、void QTreeWidget::addTopLevelItem(QTreeWidgetItem * item)

为QTreeWdiget增加顶级项目

5、void QTreeWidgetItem::addChild(QTreeWidgetItem * child)

为顶级项目增加子项目

6、void QTreeWidget::setItemWidget(QTreeWidgetItem * item, int column, QWidget * widget)

将widget控件显示到item的column列里

下面给出一些简单实例代码:

QTreeWidget简单用法「建议收藏」

#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QStringList>
#include <QSpinBox>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    QTreeWidget* treeWidget = new QTreeWidget(this);
    treeWidget->setWindowTitle("QTreeWidget");
    //设定头项名称
    treeWidget->setHeaderLabels(QStringList()<<"Key"<<"Value");
    
    treeWidget->setSortingEnabled(true);
    //treeWidget->header()->setSortIndicatorShown(true);//设置排序指示符是否显示
    treeWidget->header()->setSortIndicator(0,Qt::AscendingOrder);//为第0列设置排序指示符为升序

    //设定各个项
    QTreeWidgetItem* A = new QTreeWidgetItem(QStringList()<<"A");
    A->setIcon(0, QIcon(":/images/a.png"));//资源文件前缀为/
    A->setCheckState(0, Qt::Checked);

    QTreeWidgetItem* B = new QTreeWidgetItem(QStringList()<<"B");
    B->setIcon(0, QIcon(":/images/b.png"));
    B->setCheckState(0, Qt::Checked);

    QTreeWidgetItem* C = new QTreeWidgetItem(QStringList()<<"C");
    C->setIcon(0, QIcon(":/images/c.png"));
    C->setCheckState(0, Qt::Checked);

    treeWidget->addTopLevelItem(A);//添加顶级项A
    treeWidget->addTopLevelItem(B);//添加顶级项B
    treeWidget->addTopLevelItem(C);//添加顶级项C

    for(int i=0; i<3; ++i)//给A添加子项目
    {
        QStringList columItemList;
        QTreeWidgetItem *child;
        QString key, value;
        key += "a" + QString::number(i);
        value += QString::number(i);
        columItemList<<key<<value;
        child = new QTreeWidgetItem(columItemList);
        A->addChild(child);
        treeWidget->setItemWidget(child,1,new QSpinBox);//将QSpinBox显示到child项的第一列里
    }

    treeWidget->show();
}

Jetbrains全家桶1年46,售后保障稳定

treeWidget->setItemWidget(child,1,new QSpinBox)

这句代码调用之后会遮住value列的值,可以注释掉

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213577.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 继电器驱动原理详解(Relay)[通俗易懂]

    继电器驱动原理详解(Relay)[通俗易懂]文章目录继电器内部结构继电器工作原理继电器应用入门进阶这样控制方式的好处继电器使用时注意事项毕设答辩常见问题1、为什么要在继电器线圈上并联一个二极管呢?2、并联的二极管为什么选择开关速度快的?3、电磁继电器和固态继电器(SSR)有什么区别啊?4、不加三极管,直接用单片机的IO提供继电器线圈的电流可以吗?5、继电器使用单片机的高电平触发好呢还是低电平触发好呢?电磁继电器(electromagneticrelay)是一种电子控制器件,它具有控制系统(输入回路)和被控制系统(输出回路),通常应用于自动控制电路

    2022年6月24日
    27
  • cpu参数_CPU核心参数有哪些

    cpu参数_CPU核心参数有哪些文章目录CPU功能:CPU的组成:CPU参数:几个重要概念计算机的存储层次:RegisterCache睿频加速技术:超线程技术:CPU功能: 要完成一个任务,先编写一段程序,然后存入计算机主存。程序的代码就会翻译成一条条指令或数据字。cpu就会执行这些指令得到最终结果。读取指令要通过地址读取,地址保存在程序计数器中,读取的某个任务的全部指令会放入指令寄存器等待处理,cpu每次从中读取一条指令或…

    2025年6月17日
    2
  • Asp.net页面跳转的方法

    Asp.net页面跳转的方法Asp.net几种页面跳转的方法在asp.net下,经常需要页面的跳转,下面是具体的几种方法。跳转页面是大部编辑语言中都会有的,正面我们来分别介绍一下关于.net中response.redirectsever.executeserver.transfer三种页面跳转的方法①response.redirect(慢!但全能!)这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不

    2022年7月20日
    15
  • asp.net MVC简单图片上传

    asp.net MVC简单图片上传asp.netMVC简单图片上传01、创建控制器HomeController.csusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.Mvc;namespacemvcTuPianShangChuang.Controllers{publicclassHomeController:Controller{

    2022年7月22日
    9
  • oracle罗马字符转数字,一些关于罗马字符的知识

    oracle罗马字符转数字,一些关于罗马字符的知识I=1V=5X=10L=50C=100D=500M=1000下面是关于构造罗马数字的一些通用的规则的介绍:字符是叠加的。I表示1,II表示2,而III表示3。VI表示6(字面上为逐字符相加,“5加1”),VII表示7,VIII表示8。含十字符(I、X、C和M)至多可以重复三次。对于4,你则需要利用下一个最大的含五字符进行减操作得…

    2022年9月30日
    2
  • python中怎样换行输出_python换行继续输入

    python中怎样换行输出_python换行继续输入python输出换行的方法:1、用转义符号【\n】,代码为【str3=”..\n”】;2、直接用print输出一个空行,代码为【print(str1);print(“”);print(str2)】。本教程操作环境:windows7系统、python3.9版,DELLG3电脑。python输出换行的方法:方法1:用转义符号。str3=”我不见,万古英雄曾拔剑,铁笛高吹龙夜吟\n”st…

    2025年6月22日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号