//在主界面中选中QTableWidget QTableWidget *tableWidget = new QTableWidget(this); //添加按钮 QPushButton *editButton = new QPushButton("编辑", this); connect(editButton, &QPushButton::clicked, this, ={ //获取当前选中的行 int row = tableWidget->currentRow(); //获取图书ID QString bookId = tableWidget->item(row, 0)->text(); //跳转到编辑界面 EditDialog *editDialog = new EditDialog(bookId, this); editDialog->show();

//修改QTableWidget显示的数据
QTableWidgetItem *item;
item = new QTableWidgetItem(bookId);
tableWidget->setItem(row, 0, item);
item = new QTableWidgetItem(editDialog->getBookName());
tableWidget->setItem(row, 1, item);
item = new QTableWidgetItem(editDialog->getAuthor());
tableWidget->setItem(row, 2, item);
item = new QTableWidgetItem(editDialog->getPublisher());
tableWidget->setItem(row, 3, item);
item = new QTableWidgetItem(editDialog->getPublishDate());
tableWidget->setItem(row, 4, item);
item = new QTableWidgetItem(editDialog->getPrice());
tableWidget->setItem(row, 5, item);
item = new QTableWidgetItem(editDialog->getBorrowed());
tableWidget->setItem(row, 6, item);
item = new QTableWidgetItem(editDialog->getBorrowerId());
tableWidget->setItem(row, 7, item);

//更新数据库
QSqlQuery query;
query.exec(QString("update LBook set 书名='%1', 作者='%2', 出版社='%3', 出版年月='%4', 价格='%5', 是否借出='%6', 借书证号='%7' where 图书ID='%8'")
           .arg(editDialog->getBookName()).arg(editDialog->getAuthor()).arg(editDialog->getPublisher())
           .arg(editDialog->getPublishDate()).arg(editDialog->getPrice()).arg(editDialog->getBorrowed())
           .arg(editDialog->getBorrowerId()).arg(bookId));

});

//编辑界面代码(EditDialog类) class EditDialog : public QDialog { Q_OBJECT

public: EditDialog(QString bookId, QWidget *parent = nullptr); QString getBookName(); QString getAuthor(); QString getPublisher(); QString getPublishDate(); QString getPrice(); QString getBorrowed(); QString getBorrowerId();

private: QLineEdit *bookNameEdit; QLineEdit *authorEdit; QLineEdit *publisherEdit; QLineEdit *publishDateEdit; QLineEdit *priceEdit; QComboBox *borrowedComboBox; QLineEdit *borrowerIdEdit; };

EditDialog::EditDialog(QString bookId, QWidget *parent) : QDialog(parent) { setWindowTitle("编辑图书信息");

//查询数据库获取当前图书信息
QSqlQuery query;
query.exec(QString("select * from LBook where 图书ID='%1'").arg(bookId));
query.next();

//创建编辑框和标签
QLabel *bookNameLabel = new QLabel("书名:");
bookNameEdit = new QLineEdit(query.value(1).toString());
QLabel *authorLabel = new QLabel("作者:");
authorEdit = new QLineEdit(query.value(2).toString());
QLabel *publisherLabel = new QLabel("出版社:");
publisherEdit = new QLineEdit(query.value(3).toString());
QLabel *publishDateLabel = new QLabel("出版年月:");
publishDateEdit = new QLineEdit(query.value(4).toString());
QLabel *priceLabel = new QLabel("价格:");
priceEdit = new QLineEdit(query.value(5).toString());
QLabel *borrowedLabel = new QLabel("是否借出:");
borrowedComboBox = new QComboBox();
borrowedComboBox->addItem("否");
borrowedComboBox->addItem("是");
borrowedComboBox->setCurrentText(query.value(6).toString());
QLabel *borrowerIdLabel = new QLabel("借书证号:");
borrowerIdEdit = new QLineEdit(query.value(7).toString());

//布局
QGridLayout *layout = new QGridLayout(this);
layout->addWidget(bookNameLabel, 0, 0);
layout->addWidget(bookNameEdit, 0, 1);
layout->addWidget(authorLabel, 1, 0);
layout->addWidget(authorEdit, 1, 1);
layout->addWidget(publisherLabel, 2, 0);
layout->addWidget(publisherEdit, 2, 1);
layout->addWidget(publishDateLabel, 3, 0);
layout->addWidget(publishDateEdit, 3, 1);
layout->addWidget(priceLabel, 4, 0);
layout->addWidget(priceEdit, 4, 1);
layout->addWidget(borrowedLabel, 5, 0);
layout->addWidget(borrowedComboBox, 5, 1);
layout->addWidget(borrowerIdLabel, 6, 0);
layout->addWidget(borrowerIdEdit, 6, 1);

//添加按钮
QPushButton *okButton = new QPushButton("确定", this);
connect(okButton, &QPushButton::clicked, this, [=](){
    accept();
});
QPushButton *cancelButton = new QPushButton("取消", this);
connect(cancelButton, &QPushButton::clicked, this, [=](){
    reject();
});
QHBoxLayout *buttonLayout = new QHBoxLayout();
buttonLayout->addWidget(okButton);
buttonLayout->addWidget(cancelButton);
layout->addLayout(buttonLayout, 7, 0, 1, 2);

}

QString EditDialog::getBookName() { return bookNameEdit->text(); }

QString EditDialog::getAuthor() { return authorEdit->text(); }

QString EditDialog::getPublisher() { return publisherEdit->text(); }

QString EditDialog::getPublishDate() { return publishDateEdit->text(); }

QString EditDialog::getPrice() { return priceEdit->text(); }

QString EditDialog::getBorrowed() { return borrowedComboBox->currentText(); }

QString EditDialog::getBorrowerId() { return borrowerIdEdit->text();

写一段代码功能为选中主界面的QTableWidget单击按钮跳转到另一个界面修改数据库同时修改QTableWidget改行显示的数据数据库创建如下:create table LBook图书ID char18 NOT NULL PRIMARY KEY书名 varchar100 NOT NULL作者 varchar100 NOT NULL出版社 varchar100 NOT NULL出版年月 char

原文地址: http://www.cveoy.top/t/topic/hmrZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录