全部博文(584)
分类:
2011-01-17 13:54:46
#ifndef MYLISTVIEW_H
#define MYLISTVIEW_H
#include
class MyListView : public QWidget
{
Q_OBJECT
public:
MyListView();
private:
QStringListModel *model;
QListView *listView;
private slots:
void insertData();
void deleteData();
void showData();
};
#endif // MYLISTVIEW_H
#include "mylistview.h"
MyListView::MyListView()
{
model = new QStringListModel(this);
QStringList data;
data << "Letter A" << "Letter B" << "Letter C";
model->setStringList(data);
listView = new QListView(this);
listView->setModel(model);
QHBoxLayout *btnLayout = new QHBoxLayout;
QPushButton *insertBtn = new QPushButton(tr("insert"), this);
QPushButton *delBtn = new QPushButton(tr("Delete"), this);
QPushButton *showBtn = new QPushButton(tr("Show"), this);
btnLayout->addWidget(insertBtn);
btnLayout->addWidget(delBtn);
btnLayout->addWidget(showBtn);
QVBoxLayout *mainLayout = new QVBoxLayout(this);
mainLayout->addWidget(listView);
mainLayout->addLayout(btnLayout);
this->setLayout(mainLayout);
connect(insertBtn, SIGNAL(clicked()), this, SLOT(insertData()));
connect(delBtn, SIGNAL(clicked()), this, SLOT(deleteData()));
connect(showBtn, SIGNAL(clicked()), this, SLOT(showData()));
}
void MyListView::insertData()
{
bool isOK;
QString text = QInputDialog::getText(NULL, "Insert", "Please input new data:",
QLineEdit::Normal, "You are inserting new data.", &isOK);
if(isOK) {
int row = listView->currentIndex().row();
model->insertRows(row, 1);
QModelIndex index = model->index(row);
model->setData(index, text);
listView->setCurrentIndex(index);
listView->edit(index);
}
}
void MyListView::deleteData()
{
if(model->rowCount() > 1) {
model->removeRows(listView->currentIndex().row(), 1);
}
}
void MyListView::showData()
{
QStringList data = model->stringList();
QString str;
foreach(QString s, data) {
str += s + "\n";
}
QMessageBox::information(this, "Data", str);
}
void MyListView::insertData()
{
bool isOK;
QString text = QInputDialog::getText(NULL, "Insert", "Please input new data:",
QLineEdit::Normal, "You are inserting new data.", &isOK);
if(isOK) {
int row = listView->currentIndex().row();
model->insertRows(row, 1);
QModelIndex index = model->index(row);
model->setData(index, text);
listView->setCurrentIndex(index);
listView->edit(index);
}
}
bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex());
void MyListView::deleteData()
{
if(model->rowCount() > 1) {
model->removeRows(listView->currentIndex().row(), 1);
}
}本文出自 “豆子空间” 博客,请务必保留此出处http://devbean.blog.51cto.com/448512/265057