我有 3 个QLineEdit
(比如姓名、地址和电话号码)、2 个QPushButton
(添加和修改)和一个QTableView
.
当我在所有QLineEdit
s 中输入文本时,如果单击 Add 按钮,则QLineEdit
s 的所有 3 个文本都应添加到QTableView
.
同样,如果我在 中输入 3 个文本QLineEdit
并单击添加按钮,则文本应放置在QTableView
. 像这样应该继续下去。我做了这一切,它工作正常。
现在,如果我从中选择任何行,QTableView
并且一旦单击修改按钮,则必须从 中删除所选行,QTableView
并且项目应再次放置在它们各自QLineEdit
的 s 中。
我怎样才能做到这一点 ?
例子.h
#ifndef EXAMPLE_H
#define EXAMPLE_H
#include <QWidget>
#include <QStandardItemModel>
namespace Ui {
class Example;
}
class Example : public QWidget
{
Q_OBJECT
public:
explicit Example (QWidget *parent = 0);
~Example();
private slots:
void on_addButton_released();
void on_modifyButton_released();
private:
Ui::Example*ui;
QStandardItemModel *model;
};
#endif // EXAMPLE_H
示例.CPP
#include "Example.h"
Example::Example(QWidget *parent) :
QWidget(parent),
ui(new Ui::Example)
{
ui->setupUi(this);
model = new QStandardItemModel();
ui->tableView->setModel(model);
}
Example::~Example()
{
delete ui;
}
void Example::on_addButton_released()
{
model->setHorizontalHeaderItem(0, new QStandardItem(QString(" NAME ")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString(" ADDRESS ")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString(" PHONE NO ")));
QStandardItem *nameItem = new QStandardItem(ui->nameLineEdit->text());
QStandardItem *addressItem = new QStandardItem(ui->addressLineEdit->text());
QStandardItem *phoneItem = new QStandardItem(ui->phoneLineEdit->text());
QList<QStandardItem*> row;
row << nameItem << addressItem << phoneItem;
model->appendRow(row);
ui->nameLineEdit->clear();
ui->addressLineEdit->clear();
ui->mobileLineEdit->clear();
ui->emailLineEdit->clear();
}
void Example::on_modifyButton_released()
{
}