【qt】Tool Box组件

Tool Box组件

一.有什么作用

类似于一个大的箱子,里面有很多的抽屉,抽屉里面可以装组件。

就如同QQ的好友分组

二.界面添加

右键可以添加页等属性:

三.代码添加

还是以项目为引导。

目标效果:

1.移除已有的

先获取'抽屉'(页)个数,然后从后往前移除我们刚刚界面添加的页

cpp 复制代码
void Dialog::initUI()
{
    int count=ui->toolBox->count();
    for(int i=count-1;i>=0;i--)
    {
        ui->toolBox->removeItem(i);
    }
}

2.开始添加

我们打算'抽屉'里面放一个ListWidget 的列表模式。

所有我们要对ListWidget的列表项先进行设置。

cpp 复制代码
QListWidget *listW=new QListWidget;
    listW->setIconSize(QSize(48,48));

    for(int i=0;i<60;i++)
    {
        QListWidgetItem *item=new QListWidgetItem;
        item->setText("好友"+QString::number(i+1));
        QIcon icon;
        icon.addFile(":/image/girl.png");
        item->setIcon(icon);
        item->setSizeHint(QSize(200,60));

        listW->addItem(item);
    }

当我们对ListWidget 设置好后,最重要的就是将其添加到toolBox里面了。

cpp 复制代码
 ui->toolBox->addItem(listW,"我的好友 60");

运行结果:

感觉这个头像挺好看,哈哈!

接下来就是多添加几个箱子,来看看效果

完整代码

cpp 复制代码
void Dialog::initUI()
{
    int count=ui->toolBox->count();
    for(int i=count-1;i>=0;i--)
    {
        ui->toolBox->removeItem(i);
    }

    QListWidget *listW=new QListWidget;
    listW->setIconSize(QSize(48,48));

    for(int i=0;i<60;i++)
    {
        QListWidgetItem *item=new QListWidgetItem;
        item->setText("好友"+QString::number(i+1));
        QIcon icon;
        icon.addFile(":/image/girl.png");
        item->setIcon(icon);
        item->setSizeHint(QSize(200,60));

        listW->addItem(item);
    }

    ui->toolBox->addItem(listW,"我的好友 60");

    listW=new QListWidget;
    listW->setIconSize(QSize(48,48));

        for(int i=0;i<165;i++)
        {
            QListWidgetItem *item=new QListWidgetItem;
            item->setText("同学"+QString::number(i+1));
            QIcon icon;
            icon.addFile(":/image/girl.png");
            item->setIcon(icon);
            item->setSizeHint(QSize(200,60));

            listW->addItem(item);
        }

        ui->toolBox->addItem(listW,"我的同学 165");


    listW=new QListWidget;
        listW->setIconSize(QSize(48,48));

        for(int i=0;i<5;i++)
        {
            QListWidgetItem *item=new QListWidgetItem;
            item->setText("黑名单"+QString::number(i+1));
            QIcon icon;
            icon.addFile(":/image/girl.png");
            item->setIcon(icon);
            item->setSizeHint(QSize(200,60));

            listW->addItem(item);
        }

        ui->toolBox->addItem(listW,"黑名单 5");
}

运行结果:

四.补充

哈哈,是不是感觉有点QQ的那个味道了,但是有个问题

你发现了吗?要是真的qq的话,昵称的下面,还有一条个性签名。

我们也想添加上去,但是不行,为什么呢?

因为ListWidget 的列表项只能添加一个文本和一个图标,不能两个文本。

所有现在就引出了一个问题。

Qt自带的组件,没有合适我们的怎么办?

OK,这就是下一节的知识------自定义界面类

敬请期待...

人的一切痛苦,本质上都是对自己无能的愤怒。

相关推荐
wuyk5558 分钟前
107.FreeRTOS 链表深度解析:从原理到面试满分答案
c语言·开发语言·数据结构·stm32·单片机·链表·面试
geovindu8 分钟前
CSharp: Wordcloud
开发语言·后端·c#·.net·.netcore·词云
Java小白笔记24 分钟前
Java 实现 ZIP 压缩包生成方案
java·开发语言·网络·7-zip
Persistent的粽子!26 分钟前
C++:类与对象(一)
开发语言·c++·经验分享·笔记
飘忽不定的bug39 分钟前
ubuntu20.04交叉编译QT5.15.12(RK3562+ubuntu20.04)
linux·qt·ubuntu
weixin_4407305044 分钟前
使用pytest中方法控制执行步骤(test_begin.py、test_end.py,@pytest.mark.run(order=1))
开发语言·python·pytest
l1m0_1 小时前
智能电动自行车管理后台实战:AI生成页面与React组件化技巧
前端·react.js·ui·ai·设计
库玛西1 小时前
深入浅出Linux select网络模型:从底层位图原理到C++面向对象高级封装
linux·服务器·网络·c++·ubuntu
xian_wwq1 小时前
【学习笔记】-深度认知系列-第8讲主流AI模型横向评测——GPT、Claude、Gemini、盘古、文心、通义
人工智能·笔记·学习
2402_882893861 小时前
深入浅出 unordered_map 与 unordered_set——从使用到底层差异
c++·哈希·unordered_map·unordered_set