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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM