#ifndef MYLISTVIEW_H
#define MYLISTVIEW_H
#include <QtGui>
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
3777



被折叠的 条评论
为什么被折叠?



