Qt QStringListModel 添加项 正常应该是点一下添加按钮,在列表最后一行插入一行,但是现在是两行两行的添加,插入项和删除项也是的,都是两行两行的。代码都是按照实例,不知道是什么问题
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
strList<<"北京"<<"上海"<<"广州";
model=new QStringListModel(this);
model->setStringList (strList);
ui->listView->setModel (model);
ui->listView->setEditTriggers (QAbstractItemView::DoubleClicked|QAbstractItemView::SelectedClicked);
connect (ui->BtnAddItem,SIGNAL(clicked(bool)),this,SLOT(on_BtnAddItem_clicked()));
connect (ui->BtnDeletItem,SIGNAL(clicked(bool)),this,SLOT(on_BtnDeletItem_clicked()));
connect (ui->BtnInsertItem,SIGNAL(clicked(bool)),this,SLOT(on_BtnInsertItem_clicked()));
connect (ui->BtnClearList,SIGNAL(clicked(bool)),this,SLOT(on_BtnClearList_clicked()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_BtnAddItem_clicked()
{
model->insertRow (model->rowCount ());
QModelIndex index=model->index (model->rowCount ()-1,0);
model->setData (index,"新建项",Qt::DisplayRole);
ui->listView->setCurrentIndex (index);
}
void MainWindow::on_BtnDeletItem_clicked()
{
QModelIndex index=ui->listView->currentIndex ();
model->removeRow (index.row ());
}
void MainWindow::on_BtnInsertItem_clicked()
{
QModelIndex index=ui->listView->currentIndex ();
model->insertRow (index.row ());
model->setData (index,"插入项",Qt::DisplayRole);
ui->listView->setCurrentIndex (index);
}
void MainWindow::on_BtnClearList_clicked()
{
model->removeRows(0,model->rowCount ());
}