qt的源代码

源代码在线查看: 8.6 实例:sql缓存表.txt

软件大小: 63 K
上传用户: yuyx2003
关键词: 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

				 #ifndef TABLEEDITOR_H
				 #define TABLEEDITOR_H
				 #include 
				 class QDialogButtonBox;
				 class QPushButton;
				 class QSqlTableModel;
				 class TableEditor : public QDialog
				 {
				     Q_OBJECT
				 public:
				     TableEditor(const QString &tableName, QWidget 
				 *parent = 0);
				 private slots:
				     void submit();
				 private:
				     QPushButton *submitButton;
				     QPushButton *revertButton;
				     QPushButton *quitButton;
				     QDialogButtonBox *buttonBox;
				     QSqlTableModel *model;
				};
				 #endif
				#include 
				 #include 
				 #include "tableeditor.h"
				 TableEditor::TableEditor(const QString &tableName, QWidget *parent)
				     : QDialog(parent)
				 {
				     model = new QSqlTableModel(this);
				     model->setTable(tableName);
				     model->setEditStrategy(QSqlTableModel::OnManualSubmit);
				     model->select();
				     model->setHeaderData(0, Qt::Horizontal, tr("ID"));
				     model->setHeaderData(1, Qt::Horizontal, tr("First name"));
				     model->setHeaderData(2, Qt::Horizontal, tr("Last name"));
				     QTableView *view = new QTableView;
				     view->setModel(model);
				     submitButton = new QPushButton(tr("Submit"));
				     submitButton->setDefault(true);
				     revertButton = new QPushButton(tr("&Revert"));
				     quitButton = new QPushButton(tr("Quit"));
				     buttonBox = new QDialogButtonBox(Qt::Vertical);
				     buttonBox->addButton(submitButton, QDialogButtonBox::ActionRole);
				     buttonBox->addButton(revertButton, QDialogButtonBox::ActionRole);
				     buttonBox->addButton(quitButton, QDialogButtonBox::RejectRole);
				     connect(submitButton, SIGNAL(clicked()), this, SLOT(submit()));
				     connect(revertButton, SIGNAL(clicked()), model, SLOT(revertAll()));
				     connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));
				     QHBoxLayout *mainLayout = new QHBoxLayout;
				     mainLayout->addWidget(view);
				     mainLayout->addWidget(buttonBox);
				     setLayout(mainLayout);
				     setWindowTitle(tr("Cached Table"));
				 }
				 void TableEditor::submit()
				 {
				     model->database().transaction();
				     if (model->submitAll()) {
				         model->database().commit();
				     } else {
				         model->database().rollback();
				         QMessageBox::warning(this, tr("Cached Table"),
				                              tr("The database reported an error: %1")
				                              .arg(model->lastError().text()));
				     }
				 }
				 #include 
				 #include "../connection.h"
				 #include "tableeditor.h"
				 int main(int argc, char *argv[])
				 {
				     QApplication app(argc, argv);
				     if (!createConnection())
				         return 1;
				     TableEditor editor("person");
				     editor.show();
				     return editor.exec();
				 }			

相关资源