Qt QListView 简单应用


简言: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应用中的简单使用


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM