仿QQ好友列表,
设计逻辑:
设计qqItem类,再添加到widget中;
设计时布局等可以直接在ui中设计;内容设计通过代码实现;
qqItem.cpp
#include "qqitem.h"
#include "ui_qqitem.h"
QQitem::QQitem(QString icon,bool flag,QString name,QWidget *parent) :
QWidget(parent),
ui(new Ui::QQitem)
{
ui->setupUi(this);
//设置头像;
QImage image(icon);
ui->icon->setPixmap(QPixmap::fromImage(image.scaled(ui->icon->width(),ui->icon->height())));
//设置手机标识;
if(flag)
{
QImage image1(":/icons/phone.png");
ui->phone->setPixmap(QPixmap::fromImage(image1.scaled(ui->phone->width(),ui->phone->height())));
}
//设置名字
ui->name->setText(name);
}
QQitem::~QQitem()
{
delete ui;
}
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include "qqitem.h"
#include <QListWidgetItem>
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
this->setLayout(ui->verticalLayout);
//实例化qqItem
QQitem *qqItem = new QQitem(":/icons/icon0.jpg",1,"hxd1");
QQitem *qqItem1 = new QQitem(":/icons/icon1.jpg",false,"疯子兰特");
QQitem *qqItem2 = new QQitem(":/icons/icon2.jpg",1,"简单一点");
//实例化ListWidgetItem;
QListWidgetItem *item0 = new QListWidgetItem;
QListWidgetItem *item1 = new QListWidgetItem;
QListWidgetItem *item2 = new QListWidgetItem;
//添加ListWidgetItem;
ui->listWidget->addItem(item0);
ui->listWidget->setItemWidget(item0,qqItem);
ui->listWidget->addItem(item1);
ui->listWidget->setItemWidget(item1,qqItem1);
ui->listWidget->addItem(item2);
ui->listWidget->setItemWidget(item2,qqItem2);
}
Widget::~Widget()
{
delete ui;
}
效果: