簡言:listview 無論在mfc中還是在Qt中應用是極其廣泛的,本節簡單進行Qlistview在Qt中操作。
目標:QlistView中插入一段數據,根據點擊的相應順序,彈出列表中的項目。
.h
1 #ifndef MAINWINDOW_H 2 #define MAINWINDOW_H
3
4 #include <QMainWindow>
5 #include <QStringListModel>
6 #include <QStandardItemModel>
7 #include <QModelIndex>
8
9 namespace Ui { 10 class MainWindow; 11 } 12
13 class MainWindow : public QMainWindow 14 { 15 Q_OBJECT 16
17 public: 18 explicit MainWindow(QWidget *parent = 0); 19 ~MainWindow(); 20
21 private: 22 Ui::MainWindow *ui; 23
24 public: 25 QStringListModel *Model; 26 QStandardItemModel *ItemModel; 27 void init(); 28
29 private slots: 30 void showClick(QModelIndex index); 31 }; 32
33 #endif // MAINWINDOW_H
.cpp
1 #include "mainwindow.h"
2 #include "ui_mainwindow.h"
3 #include <QMessageBox>
4
5 MainWindow::MainWindow(QWidget *parent) : 6 QMainWindow(parent), 7 ui(new Ui::MainWindow) 8 { 9 ui->setupUi(this); 10 init(); 11 } 12
13 void MainWindow::init() 14 { 15 // QStringList strlist; 16 // strlist<<"A"<<"B"<<"C"<<"D"; 17 // Model = new QStringListModel(strlist); 18 // ui->listView->setModel(Model); 19 // ui->listView->setModel(Model);
20
21 ItemModel = new QStandardItemModel(this); 22
23 QStringList strList; 24 strList.append("A"); 25 strList.append("B"); 26 strList.append("C"); 27 strList.append("D"); 28 strList.append("E"); 29 strList.append("F"); 30 strList.append("G"); 31
32 int nCount = strList.size(); 33 for(int i = 0; i < nCount; i++) 34 { 35 QString string = static_cast<QString>(strList.at(i)); 36 QStandardItem *item = new QStandardItem(string); 37 ItemModel->appendRow(item); 38 } 39 ui->listView->setModel(ItemModel); 40 ui->listView->setFixedSize(200,300); 41
42 connect(ui->listView,SIGNAL(clicked(QModelIndex)),this,SLOT(showClick(QModelIndex))); 43 } 44
45 void MainWindow::showClick(QModelIndex index) 46 { 47 QString strTemp; 48 strTemp = index.data().toString(); 49
50 QMessageBox msg; 51 msg.setText(strTemp); 52 msg.exec(); 53
54
55 } 56 MainWindow::~MainWindow() 57 { 58 delete ui; 59 }
實現效果:
總結:此為Qlistview在Qt應用中的簡單使用