标签: qsqlquerymodel

在可编辑的QSqlQueryModel中实现setEditStrategy

这是这个问题的后续行动.在那里,我们创建了一个可编辑的QSqlQueryModel子类,用于复杂查询.现在我需要添加像QTableModel的setEditStrategy这样的功能,这样我就可以缓存所有更改并使用按钮接受或还原它们.PyQt显然不允许多重继承,我找不到足够的文档来在我的自定义模型中重新实现这个方法,因此这里有一个问题:

如何在可编辑的QSqlQueryModel中重新实现QSqlTableModel.setEditStragety(或类似的东西),包括RevertAll()和SubmitAll()?

这是一个CVME :(我已经评论了我希望工作的Example类的部分内容)

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtSql import QSqlDatabase, QSqlQuery, QSqlQueryModel, QSqlTableModel
from PyQt5.QtWidgets import QApplication, QTableView, QWidget, QGridLayout
from PyQt5.Qt import QPushButton

db_file = "test.db"


def create_connection(file_path):
    db = QSqlDatabase.addDatabase("QSQLITE")
    db.setDatabaseName(file_path)
    if not db.open():
        print("Cannot establish a database connection to {}!".format(file_path))
        return False
    return True


def fill_tables():
    q = QSqlQuery()
    q.exec_("DROP TABLE IF EXISTS Manufacturers;")
    q.exec_("CREATE TABLE Manufacturers (Company TEXT, Country TEXT);")
    q.exec_("INSERT INTO Manufacturers VALUES ('VW', 'Germany');")
    q.exec_("INSERT INTO Manufacturers VALUES …
Run Code Online (Sandbox Code Playgroud)

python pyqt qsqltablemodel pyqt5 qsqlquerymodel

7
推荐指数
0
解决办法
397
查看次数

如何在 QML 中显示 QSqlQueryModel?

我想在 qml TableView 中显示 QSqlQueryModel 但我不想为每个新查询创建单独的 QML 文件,因为我无法创建无限的 qml 文件,如这里给出的。另外,问题对我的动态列数不起作用(可能是版本差异,因为我使用的是 5.11)。我只想要这样的东西:-

QTableView *view = new QTableView;
view->setModel(model);
view->show();
Run Code Online (Sandbox Code Playgroud)

在 QML 中。

我是 qml 的新手。到目前为止,我可以按照第一个链接中的指导显示 QSqlQueryModel,但我的用户可以输入任何 SQL 查询。

c++ qt qml qt5 qsqlquerymodel

1
推荐指数
1
解决办法
2013
查看次数

标签 统计

qsqlquerymodel ×2

c++ ×1

pyqt ×1

pyqt5 ×1

python ×1

qml ×1

qsqltablemodel ×1

qt ×1

qt5 ×1