簡單的來實習了下
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()信號。