小白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,"修改失敗","請檢查修改資料!");
}
}
總結
找了好久的方法最後幾行程式碼就解決了。。不過還有很多問題沒處理,只是能跑,不管了,先能用再說吧~
相關文章
- MySQL 到Oracle 實時資料同步HYXSMySqlOracle
- mysql到sqlserver資料庫實時同步工具syncnavigator註冊使用MySqlServer資料庫
- ubuntu 修改時區或時間 及網路同步時間Ubuntu
- 資料同步:教你如何實時把資料從 MySQL 同步到 OceanBaseMySql
- laravel sync()同步時修改中間表欄位Laravel
- 實時資料庫與時序資料庫資料庫
- 網站修改了不同步嗎,確保修改內容及時更新網站
- Laravel-admin修改圖片上傳時存入資料庫的URLLaravel資料庫
- 阿里 Canal 實時同步 MySQL 增量資料至 ClickHouse 資料庫阿里MySql資料庫
- 透過 Canal 將 MySQL 資料實時同步到 EasysearchMySql
- C/C++ Qt 資料庫與TableView多元件聯動C++QT資料庫View元件
- 什麼是資料實時同步,為什麼資料實時同步很重要
- Mysql資料實時同步實踐MySql
- Oracle修改時區Oracle
- 【MySQL】時區修改MySql
- weblogic修改時區Web
- Esxi 修改時區
- Linux修改時間Linux
- Linux 修改時間Linux
- 一鍵執行實時的修改,讓Qt遠端除錯更簡單QT除錯
- nid修改資料庫名稱資料庫
- 織夢修改資料庫字首資料庫
- 【Mysql】修改mysql時區MySql
- docker修改容器時間Docker
- 資料庫修改網站密碼?後臺修改網站?資料庫網站密碼
- 用NID修改資料庫名稱資料庫
- 如何修改MySQL資料庫名稱MySql資料庫
- 使用NID修改Oracle資料庫名Oracle資料庫
- 達夢資料庫單例項轉實時同步叢集資料庫單例
- Sentinel Dashboard中修改規則同步到Nacos
- ogg在異構資料庫實時雙向同步中如何防止資料死迴圈同步資料庫
- rsync+inotify資料的實時同步
- 認識資料實時同步神器—Canal
- 用bat批次修改檔案建立和修改時間BAT
- ubuntu16 修改時區Ubuntu
- 網站檔案修改資料庫,安全高效地修改網站資料庫中的檔案資訊網站資料庫
- 42.QT-QSqlQuery類操作SQLite資料庫(建立、查詢、刪除、修改)詳解QTSQLite資料庫
- kettle 實時同步資料(插入/更新/刪除資料)