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()信号。

 

posted @ 2018-01-11 17:31  轻风々  阅读(23352)  评论(0编辑  收藏  举报