小白QT tableView實時修改同步到QSqlTableModel MODEL 即時修改資料庫
小白QT tableView實時修改同步到QSqlTableModel MODEL 即時修改資料庫
tableView實時修改資料庫
程式碼如下(示例):
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QString name,QWidget *parent = nullptr);
~MainWindow();
signals:
//過載dataChanged 格式就是這個,引數不對就沒得訊號了
void dataChanged(QModelIndex,QModelIndex);
private slots:
//槽函式
void ChangeData(QModelIndex);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QString name,QWidget *parent) :
user(name),
QMainWindow(parent),
ui(new Ui::MainWindow)
{
//過載datachange訊號 傳送QModelIndex類引數,傳遞給ChangeData
connect(model,SIGNAL(dataChanged(QModelIndex,QModelIndex)),this,SLOT(ChangeData(QModelIndex)));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::ChangeData(QModelIndex x)
{
bool y=model->setData(model->index(x.row(),x.column()),x.data()); //x.data()返回QVariantl型別資料 QVariant內建支援所有QMetaType::Type裡宣告的型別如:int,QString,QFont,QColor等,甚至QList,QMap<QString, QVariant>等組成的任意複雜型別。
if(y){
model->submitAll();
}
else {
model->blockSignals(true);//阻塞datachange訊號傳送,沒這句about會彈兩次
model->revertAll();
QMessageBox::about(this,"修改失敗","請檢查修改資料!");
}
}
總結
找了好久的方法最後幾行程式碼就解決了。。不過還有很多問題沒處理,只是能跑,不管了,先能用再說吧~
相關文章
- 時間同步的修改
- Linux時間修改及CMOS時間修改同步的4種方法Linux
- CentOS命令修改系統時間同步CentOS
- ubuntu 修改時區或時間 及網路同步時間Ubuntu
- MySQL 到Oracle 實時資料同步HYXSMySqlOracle
- Mysql 資料庫主庫,備庫實時同步配置MySql資料庫
- mysql到sqlserver資料庫實時同步工具syncnavigator註冊使用MySqlServer資料庫
- 資料同步:教你如何實時把資料從 MySQL 同步到 OceanBaseMySql
- 修改系統時間對oracle資料庫的影響Oracle資料庫
- 修改資料庫資料庫
- linux系統時間修改及同步Linux
- sql server 建臨時表修改資料SQLServer
- 資料庫修改資料資料庫
- 實時資料庫與時序資料庫資料庫
- laravel sync()同步時修改中間表欄位Laravel
- 透過 Canal 將 MySQL 資料實時同步到 EasysearchMySql
- 什麼是資料實時同步,為什麼資料實時同步很重要
- Mysql資料實時同步實踐MySql
- 阿里 Canal 實時同步 MySQL 增量資料至 ClickHouse 資料庫阿里MySql資料庫
- Oracle修改時區Oracle
- AIX 修改時區AI
- 【MySQL】時區修改MySql
- Esxi 修改時區
- Qt時鐘介面、數字時鐘(12小時制24小時制切換、修改系統時間)QT
- 關於RAC Server時間同步以及DB Server時間修改注意點Server
- 修改資料庫路徑資料庫
- 修改資料庫名稱資料庫
- 使用ALTER修改資料庫資料庫
- DG_rman配置修改後不會同步到備庫
- 使用DUMP資料塊與BBED檢視BLOCK對比資料庫修改時的SCNBloC資料庫
- Laravel-admin修改圖片上傳時存入資料庫的URLLaravel資料庫
- 線上mongodb 資料庫使用者到期時間修改的操作記錄MongoDB資料庫
- C/C++ Qt 資料庫與TableView多元件聯動C++QT資料庫View元件
- 一鍵執行實時的修改,讓Qt遠端除錯更簡單QT除錯
- 即時通訊中音影片同步的實現
- Linux 修改時間Linux
- Linux修改時間Linux
- 【Mysql】修改mysql時區MySql