Qt listWidget和QListWidgetItem的简单使用
简单的来实习了下
1 #include "mainwindow.h" 2 #include "ui_mainwindow.h" 3 #include<QListWidget> 4 #include<QDebug> 5 #include<QPushButton> 6 #include<QLineEdit> 7 #include <QListWidgetItem> 8 #include<QIcon> 9 #include<QSize> 10 MainWindow::MainWindow(QWidget *parent) : 11 QMainWindow(parent), 12 ui(new Ui::MainWindow) 13 { 14 ui->setupUi(this); 15 QIcon Icon = QIcon(":/image/icon-eye.png"); 16 for(int i=0;i<10;i++) 17 { 18 // ui->listWidget->addItem(QString("%1").arg(i)); //只简单的添加文本数据的 19 // QListWidgetItem* Item = new QListWidgetItem(QString("%1").arg(i)); //通过QListWidgetItem 添加文本数据的 20 if(Icon.isNull()) 21 { 22 qDebug()<<"11111"<<endl; 23 } 24 QListWidgetItem * IconItem = new QListWidgetItem(Icon,QString("%1").arg(i),ui->listWidget);//通过 QListWidgetItem添加文本以及Icon数据的 25 ui->listWidget->addItem(IconItem); 26 } 27 QIcon winIcon = QIcon(":/image/guanbi.png"); 28 if(!winIcon.isNull()) 29 { 30 qDebug()<<winIcon<<endl; 31 this->setWindowIcon(winIcon); 32 } 33 connect(ui->listWidget,&QListWidget::currentRowChanged,[=](int curindex){ 34 qDebug()<<curindex<<endl; 35 }); 36 connect(ui->pushButton,&QPushButton::pressed,[this](){ 37 int index = ui->lineEdit->text().toInt(); 38 qDebug()<<index<<endl; 39 ui->listWidget->setCurrentRow(index); 40 }); 41 } 42 43 MainWindow::~MainWindow() 44 { 45 delete ui; 46 }
QListWidget类提供了一个基于项目的列表小部件。
QListWidget是一个方便类,它提供了类似于QListView提供的列表视图,但是提供了一个用于添加和删除条目的经典的基于项目的接口。QListWidget使用一个内部模型来管理列表中的每个QListWidgetItem。
对于一个更灵活的列表视图小部件,使用标准模型的QListView类。
列表小部件的构造方式与其他小部件相同:
1 QListWidget *listWidget = new QListWidget(this);
一个列表小部件的selectionMode()决定了列表中可以同时选择列表中的多少项,以及是否可以创建复杂的项。可以使用setSelectionMode()函数设置此功能。
有两种方法可以将条目添加到列表中:可以用列表小部件构造它们作为它们的父小部件,也可以用不包含父小部件的方式构造它们,并在以后添加到列表中。如果在构建项目时已经存在一个列表小部件,那么第一个方法就更容易使用:
如果您需要在特定位置插入一个新项目,那么应该在没有父部件的情况下构造它。然后应该将insertItem()函数用于将其放置在列表中。列表小部件将获得该项目的所有权
1 QListWidgetItem *newItem = new QListWidgetItem; 2 newItem->setText(itemText); 3 listWidget->insertItem(row, newItem);
对于多个项目,可以使用insert titems()。列表中的条目的数量是通过count()函数找到的。要从列表中删除项目,请使用remove item()。
列表中的当前项可以使用curr有权()找到,并使用setcurr有权()进行更改。用户还可以通过键盘导航或单击不同的条目来更改当前项。当当前项更改时,将使用新的当前项和先前当前的项来释放currentItemChanged()信号。