使用自带的ListWidget控件,实现简单,就几行代码,先看效果:
1-首先页面布局,效果如下
1.1 添加一个listwidget ,两个按钮
1.2 listwidget设置一下拖拽模式
2-新建一个带ui的widget,就是里面的列表项
2.1新建如下,名字自己取一个骚的
2.2打开新建的ui文件布局,布局成你想要的样子
3-开始撸代码了
3.1前面新建的widget我们名字叫item,添加一个设置名字的构造函数,吧名字设置到label控件中
item::item(QString name):
ui(new Ui::item)
{
ui->setupUi(this);
ui->label->setText(name);
}
3.2关于listwidget怎么使用这里就不说了,这里只说实现功能。主要内容都在add_item函数中,两个按键的槽函数实现了添加项和删除项。
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "item.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
add_item("日本片");
add_item("韩国片");
add_item("欧美片");
add_item("自拍片");
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::add_item(QString name)
{
QListWidgetItem *WidgetItem = new QListWidgetItem(ui->listWidget);
item *it1=new item(name);
//大小设置成自定义widget大小,item对象就是一个widget
WidgetItem->setSizeHint(it1->sizeHint());
ui->listWidget->setItemWidget(WidgetItem,it1);
}
void MainWindow::on_pushButton_clicked()
{
QListWidgetItem *WidgetItem =ui->listWidget->takeItem(0);
delete WidgetItem;
}
void MainWindow::on_pushButton_2_clicked()
{
static int count=1;
add_item("小片"+QString::number(count++));
}