我的Sqlite数据库如下(简化):
CREATE TABLE Scene(
sceneID INTEGER PRIMARY KEY,
title TEXT NOT NULL
);
CREATE TABLE Character(
characterID INTEGER PRIMARY KEY,
fullName TEXT NOT NULL
);
CREATE TABLE CharacterInScene(
characterID INTEGER,
sceneID INTEGER,
PRIMARY KEY(characterID, sceneID),
FOREIGN KEY(characterID) REFERENCES Character(characterID),
FOREIGN KEY(sceneID) REFERENCES Scene(sceneID)
);
INSERT INTO Scene (1, "Police Station");
INSERT INTO Character (1, "Harrison Ford");
INSERT INTO Character (2, "Rutger Hauer");
INSERT INTO CharacterInScene(1, 1);
所以,我有一个场景,“警察局”,里面有哈里森·福特,但没有鲁格·豪尔。在我的UI中,我正在编辑一个场景的内容。有这样一个界面:
现在,这两个QListView通过以下查询连接到两个QSQLQueryModel:
1. SELECT * FROM Character WHERE characterID NOT IN
(SELECT characterID FROM CharacterInScene WHERE sceneID=1)
2. SELECT * FROM Character WHERE characterID IN
(SELECT characterID FROM CharacterInScene WHERE sceneID=1)
我希望箭头按钮将所选条目从一个列表移动到另一个列表,并希望apply按钮执行db中的更改。但是由于QSqlQueryModel的只读特性,这并不像我现在设置的那样是真的成立的。你知道吗
实现这一目标的最佳方法是什么?我假设我想实现我自己的QSqlTableModel,但是我不确定如何实现,而且我还没有找到任何与我的情况类似的好例子。也许我想得太多了。你知道吗
我在PYQT5中工作,但是我可以从C++翻译。你知道吗
您不必实现任何自定义模型或使
QSqlQueryModel
可编辑,即插入和删除记录。您可以使用QSqlQuery
执行此任务,并调用模型的更新。你知道吗完整的例子可以在下面的link中找到
相关问题 更多 >
编程相关推荐