我使用QSqlTableModel填充QListView.
projectModel = QSqlTableModel()
projectModel.setTable("project")
projectModel.select()
projectView = QListView()
projectView.setModel(projectModel)
projectView.setModelColumn(1)
Run Code Online (Sandbox Code Playgroud)
假设我的QSqlTableModel有3列.(0)表示id,(1)表示名称,(2)表示颜色.
在我的QListView中,我显示的是第1列,所以只显示了名称.然后我选择了1个项目.如何检索该项目的ID和颜色?
对不起,我是一个非常初学者.太初学者我无法弄清楚读取文件:(
虽然我不完全明白你想要做什么,但我向你展示了你的两个问题的答案.
例如,我们有一个sqlite3数据库"sqlitedb.rdb"和一个表名"info",
CREATE TABLE info (
id integer PRIMARY KEY AUTOINCREMENT DEFAULT NULL,
name TEXT(20) DEFAULT NULL,
country TEXT(20) DEFAULT NULL,
age integer)
Run Code Online (Sandbox Code Playgroud)
并有一些数据,
INSERT INTO info (name,country,age) VALUES ('Leroy Hale','San Marino','46');
INSERT INTO info (name,country,age) VALUES ('William Coleman','Namibia','50');
INSERT INTO info (name,country,age) VALUES ('Phelan Waller','Belgium','43');
INSERT INTO info (name,country,age) VALUES ('Kato Martin','Virgin Islands, British','21');
INSERT INTO info (name,country,age) VALUES ('Jameson Mccoy','United Arab Emirates','45');
INSERT INTO info (name,country,age) VALUES ('Fulton Reeves','Belarus','34');
INSERT INTO info (name,country,age) VALUES ('Calvin Love','Morocco','28');
INSERT INTO info (name,country,age) VALUES ('Peter Solis','Bhutan','31');
INSERT INTO info (name,country,age) VALUES ('Connor Stephenson','Dominican Republic','26');
INSERT INTO info (name,country,age) VALUES ('Aristotle Smith','Chad','45');
Run Code Online (Sandbox Code Playgroud)
现在,
我只想显示id和名称(第0列和第1列)我该怎么做?
要做到这一点,你可以,
from PyQt4.QtSql import QSqlQueryModel,QSqlDatabase,QSqlQuery
from PyQt4.QtGui import QTableView,QApplication
import sys
app = QApplication(sys.argv)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("sqlitedb.rdb")
db.open()
projectModel = QSqlQueryModel()
projectModel.setQuery("select name,age from info",db)
projectView = QTableView()
projectView.setModel(projectModel)
projectView.show()
app.exec_()
Run Code Online (Sandbox Code Playgroud)
您可以使用查询设置要显示的字段/列.
和,
如何从我选择的项目的不同列中检索信息?
您可以浏览查询结果并获取数据,例如,
from PyQt4.QtSql import QSqlDatabase,QSqlQuery
from PyQt4.QtCore import QCoreApplication
import sys
app = QCoreApplication(sys.argv)
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("sqlitedb.rdb")
db.open()
query = QSqlQuery()
query.exec_("select * from info")
while (query.next()):
id = query.value(0).toInt()
name = query.value(1).toString()
country = query.value(2).toString()
age = query.value(3).toInt()
print "name = %s \ncountry = %s" % (name,country)
app.exec_()
Run Code Online (Sandbox Code Playgroud)
您可以遍历查询并访问数据.
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |