QT--QlistView 简单应用

简言:listview 无论在mfc中还是在Qt中应用是极其广泛的,本节简单进行Qlistview在Qt中操作。

目标:QlistView中插入一段数据,根据点击的相应顺序,弹出列表中的项目。

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 
#include 
#include 
#include 

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

public:
    QStringListModel *Model;
    QStandardItemModel *ItemModel;
    void init();

private slots:
    void showClick(QModelIndex index);
};

#endif // MAINWINDOW_H

.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    init();
}

void MainWindow::init()
{
//     QStringList strlist;
//     strlist<<"A"<<"B"<<"C"<<"D";
//     Model = new QStringListModel(strlist);
//     ui->listView->setModel(Model);
//     ui->listView->setModel(Model);

       ItemModel = new QStandardItemModel(this);

       QStringList strList;
       strList.append("A");
       strList.append("B");
       strList.append("C");
       strList.append("D");
       strList.append("E");
       strList.append("F");
       strList.append("G");

       int nCount = strList.size();
       for(int i = 0; i < nCount; i++)
       {
           QString string = static_cast(strList.at(i));
           QStandardItem *item = new QStandardItem(string);
           ItemModel->appendRow(item);
       }
      ui->listView->setModel(ItemModel);
      ui->listView->setFixedSize(200,300);

      connect(ui->listView,SIGNAL(clicked(QModelIndex)),this,SLOT(showClick(QModelIndex)));
}

void MainWindow::showClick(QModelIndex index)
{
    QString strTemp;
    strTemp = index.data().toString();

    QMessageBox msg;
    msg.setText(strTemp);
    msg.exec();


}
MainWindow::~MainWindow()
{
    delete ui;
}

实现效果:
QT--QlistView 简单应用_第1张图片

QT--QlistView 简单应用_第2张图片

总结:此为Qlistview在Qt应用中的简单使用

你可能感兴趣的:(Qt学习之道)