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,这就是下一节的知识------自定义界面类
敬请期待...
人的一切痛苦,本质上都是对自己无能的愤怒。