qlistwidget添加item后如何自动更新

qlistwidget添加item后如何自动更新,第1张

QListWidget是Qt中用于显示列表或树状图等元素的控件,它可以显示多个项。当你添加或删除项时,你需要使用`addItem()`或`addItems()`方法添加项,或者使用`insertItem()`或`insertItems()`方法插入项对ListWidget进行更新。

但是当你更新列表的时候,ListWidget可能需要部分重绘,如果你不调用`update()`方法,你无法看到添加的子项。如果你需要在使用`insertItems`或者`addItem`函数添加item后自动更新,可以调用`update()`方法手动更新ListWidget,当然也可以通过实现`QListWidget`类的`itemChanged()`槽函数自动更新。

总之,ListWidget可以通过调用自带函数或自定义函数,实现列表项的添加,删除或改变等功能。需要注意的是,在进行改变后,你需要通过`update()`或槽函数来更新ListWidget使之更新显示效果。

QListView是基于Model,而QListWidget是基于Item。

往QListView中添加条目需借助QAbstractListModel:

// 如:MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this) QStringListModel* slm = new QStringListModel(this) QStringList* sl = new QStringList() sl->append("asdfsadfsa") sl->append("asdfsadfsa") sl->append("asdfsadfsa") slm->setStringList(*sl) ui->listView->setModel(slm) delete sl}

而在QListWidget中添加条目可以直接additem

// 如:MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow){ui->setupUi(this) QStringList* sl = new QStringList() sl->append("1") sl->append("2") sl->append("3") ui->listWidget->addItems(*sl) connect(ui->pushButton,SIGNAL(clicked()), this, SLOT(close()))}

listWidget = QListWidget() #实例化一个(itembase)的列表listWidget.addItem('dd') #添加一个项listWidget.addItems([]) #从序列中添加子项listWidget.setDragEnabled(True)#设置拖拉listWidget.sortItems() #排序listWidget.selectAll()#全选listWidget.setSortingEnabled(bool)#设置自动排序listWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection)#设置选择模式选择模式有:ExtendedSelection 按住ctrl多选SingleSelection 单选 MultiSelection 点击多选 ContiguousSelection 鼠标拖拉多选listWidget.setCurrentRow(0) #设置当前选择行默认为-1listWidget.count() #得到子项总数listWidget.item(row).text() #得到第 row 行的内容 listWidget.item(row) 返回一个 item 对象listWidget.takeItem(row) #返回row 行的所在的item 对象 可以用在 insertItem()中listWidget.insertItem(2,item) #在第二行插入一项item可谓为一个listviewitem对象或者stringlistWidget.setCurrentItem('dd')#设置'dd'为当前项listWidget.selectedItems() #返回一个包含item对象 的list 对象item.setText('dsds') # 设置item的内容为dsdsitem为对象 可从 listWidget.item(row) takeItem(row) 得到

QListWidget的用法

setSelectionMode()#设置list一次最多可以选择多少item#有两种方法来listwidget中添加Item:#一种是在item构造时候,指定父widget,#如果item构造时候QListWidget已经存在,可以用下面的方法new QListWidgetItem(tr("Oak"), listWidget)#第二种方法是构造完item,在使用QListWidget::addItem()来添加item#向QListWidget中指定的位置插入item,使用QListWidget::insertItem(int , QListWidgetItem*)#使用QListWidget::count()来统计widget中总共的item数目#使用QListWidget::takeItem(int index)来删除表中的某一项#设置当前的item是第几行,QListWidget::setCurrentRow ( int row )#设置list是否可以自动排序QListWidget::setSortingEnabled(bool),默认是FALSE


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7875264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存