3 つQLineEdit
の s (たとえば、名前、住所、電話番号)、2 QPushButton
(追加と変更)、およびQTableView
.
すべての にテキストを入力し、QLineEdit
[追加] ボタンをクリックすると、 の 3 つのテキストすべてQLineEdit
が の 1 行目に追加されQTableView
ます。
に 3 つのテキストを入力しQLineEdit
て [追加] ボタンをクリックすると、テキストは の 2 行目に配置されQTableView
ます。このように続けるべきです。私はこれをすべてやりましたが、うまくいきます。
から任意の行を選択しQTableView
、[変更] ボタンをクリックすると、選択した行を から削除しQTableView
、アイテムをそれぞれQLineEdit
の に再度配置する必要があります。
これどうやってするの ?
Example.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()
{
}