欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QT--QlistView 简单应用

程序员文章站 2022-03-31 19:24:40
...

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

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

.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QStringListModel>
#include <QStandardItemModel>
#include <QModelIndex>

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 <QMessageBox>

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<QString>(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 简单应用

QT--QlistView 简单应用

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