QT__listview_standitemmodel__操作

#ifndef LISTVIEWSTANDARD_H
#define LISTVIEWSTANDARD_H

#include <QtGui/QWidget>
#include <QListView>
#include <QStandardItemModel>
class listviewStandard : public QWidget
{
    Q_OBJECT
    
public:
    listviewStandard(QWidget *parent = 0);
    ~listviewStandard();
public slots:
    void addToModel();
    void displayModel();
    void delModel(QModelIndex index);
private:
    QListView *listView;
    QStandardItemModel *standardItemModel;
};

#endif // LISTVIEWSTANDARD_H


#include "listviewstandard.h"
#include <QPushButton>
#include <QGridLayout>
#include <QDebug>
listviewStandard::listviewStandard(QWidget *parent)
    : QWidget(parent)
{
    resize(500,700);
    listView = new QListView(this);
    standardItemModel = new QStandardItemModel(this);

    listView->setModel(standardItemModel);
    listView->setFixedSize(200,300);
    connect(listView,SIGNAL(clicked(QModelIndex)),this,SLOT(delModel(QModelIndex)));

    QPushButton *ptnAdd=new QPushButton("Add");
    QPushButton *ptnDel=new QPushButton("Del");
    QPushButton *ptnDisplay=new QPushButton("Display");
    connect(ptnAdd,SIGNAL(clicked()),this, SLOT(addToModel()));
    connect(ptnDisplay,SIGNAL(clicked()),this,SLOT(displayModel()));

    QGridLayout *winGrid=new QGridLayout;

    winGrid->addWidget(ptnAdd);
    winGrid->addWidget(ptnDel);
    winGrid->addWidget(ptnDisplay);

    setLayout(winGrid);
}

listviewStandard::~listviewStandard()
{
    
}

void listviewStandard::addToModel()
{
    QString string("add to model") ;
    QStandardItem *item = new QStandardItem(string);

    {
        QLinearGradient linearGrad(QPointF(0, 0), QPointF(200, 200));
        linearGrad.setColorAt(0, Qt::darkGreen);
        linearGrad.setColorAt(1, Qt::yellow);
        QBrush brush(linearGrad);
        item->setBackground(brush);
    }
    standardItemModel->appendRow(item);
}
void listviewStandard::displayModel()
{
    QList<QStandardItem*> list =standardItemModel->findItems("*",
                                 Qt::MatchWildcard |
                                 Qt::MatchRecursive);//查找model中的Item,

          foreach (QStandardItem* item, list)
          {
                  qDebug() << item->text();
          }


}
void listviewStandard::delModel(QModelIndex index)
{
   standardItemModel->removeRows(index.row(),1);
   //如果是按钮的话,standardItemModel->removeRows(listview->currentIndex().row(),1);
}



#include <QtGui/QApplication>
#include "listviewstandard.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    listviewStandard w;
    w.show();
    
    return a.exec();
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值