QListWidget的使用

本文详细介绍了Qt中QListWidget组件的使用方法,包括如何设置item图标大小、文字位置、选择模式、添加和删除item,以及设置样式等。通过实例展示了多种操作技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//一、QListWidget

list_widget = new QListWidget();

//list_widget->resize(200,300);
list_widget->setFixedWidth(300);


//设置item图标大小
list_widget->setIconSize(QSize(50,30));

QListWidgetItem *add_item = new QListWidgetItem(list_widget);
add_item->setIcon(QIcon(":/res/pix/add.png"));
add_item->setText(tr("Add"));
//设置item项中的文字位置
//add_item->setTextAlignment(Qt::AlignHCenter);
//add_item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);


//设置viewModel,来确定使用不同的视图进行显示
//使ListWidgetItem中的图标在上,文字在下
//list_widget->setViewMode(QListView::IconMode);
//list_widget->setViewMode(QListWidget::IconMode);  //这样的形式也可以
//list_widget->setViewMode(QListView::ListMode);


//改变item大小,使用QListWidgetItem::setSizeHint()
//add_item->setSizeHint(QSize(60,60));


//设置ListWidget可以选择多个item
list_widget->setSelectionMode(QAbstractItemView::ExtendedSelection);


//有两种方法在ListWidget中添加item
//一种在构造item的时候,指定其父Widget
QListWidgetItem *cubby_item = new QListWidgetItem(QIcon(":/res/pix/cubby.png"),
                                                  tr("Cubby"),list_widget);
//第二种方法是在构造完item后,使用QListWidget::additem()来添加item
QListWidgetItem *dropbox_item = new QListWidgetItem();
dropbox_item->setIcon(QIcon(":/res/pix/dropbox.png"));
dropbox_item->setText(tr("Dropbox"));
list_widget->addItem(dropbox_item);


//向QListWidget中指定的位置插入itemm,使用QListWidget::addItem()
QListWidgetItem *google_item = new QListWidgetItem(QIcon(":/res/pix/google.png"),
                                                     tr("Google"));
list_widget->insertItem(1,google_item);


//使用QListWidget::takeItem(int index)来删除表中的某一项
//list_widget->takeItem(0);

//删除item,必须要加上delete item,否则删不掉
//list_widget->removeItemWidget(add_item);
//delete add_item;


//打开和关闭item是否可以编辑,默认不可编辑
//使用QListWidget::openPersistenEditor(QListWidgetItem*)和
//QListWidget::closePersistentEditor(QListWidgetItem*)
//list_widget->openPersistentEditor(cubby_item);


//设置当前的item是第几行
//初始化ListWidget显示时,指向哪一行
list_widget->setCurrentRow(1);


//设置ListWidget是否可以自动排序,默认是false
//list_widget->setSortingEnabled(true);


//设置QLisView大小改变时,图标的调整模式,默认是固定的,可以改成自动调整
//list_widget->setResizeMode(QListView::Adjust);
//设置列表可以拖动,如果想固定不能拖动,使用QListView::Static
//拖动item,进行复制
list_widget->setMovement(QListWidget::Free);


QListWidgetItem *computer_item = new QListWidgetItem();
QString str(tr("Computer"));
computer_item->setData(Qt::DisplayRole,str);
computer_item->setIcon(QIcon(":/res/pix/computer.png"));
list_widget->addItem(computer_item);


QPushButton *button = new QPushButton(tr("Button"));
QListWidgetItem *button_item = new QListWidgetItem();
list_widget->addItem(button_item);
//实现替换,自定义item
list_widget->setItemWidget(button_item,button);

//使用QListWidget::count()来统计ListWidget中总共的item数目
int item_count = list_widget->count();
qDebug()<<item_count;


//设置样式,直接在函数中设置
list_widget->setStyleSheet("QListWidget{border:1px solid gray; color:black; }"
                           "QListWidget::Item{padding-top:20px; padding-bottom:4px; }"
                           "QListWidget::Item:hover{background:skyblue; }"
                           "QListWidget::item:selected{background:lightgray; color:red; }"
                           "QListWidget::item:selected:!active{border-width:0px; background:lightgreen; }"
                           );
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值