我正在使用 Postgres 作为后端和 QT Designer 来制作 GUI 的 Quantum GIS 中创建一个插件。我正在使用 psycopg2 在数据库中运行脚本,甚至获取查询结果以在 GUI 中设置标签的值。这东西对我来说很好用。
在通过单击“计算”按钮运行一些查询之后,我现在想做的是将结果表作为 TableView 显示在插件中。我知道有小部件专门用于查看表格,但我不太清楚如何去做。我不确定我应该使用 psycopg2 还是 PySide,因为我在网上看到的大多数示例都使用后者。
我想知道是否有人可以告诉我应该使用 psycopg2 和 PySide 之间的哪个来创建 TableView。其次,我想知道 TableView 小部件的“信号”应该是什么,以在 Postgres 中显示查询结果。最后,是否有人可以提供一些关于如何设置代码的说明,将不胜感激!
干杯,
罗马
我已经继续尝试遵循 PyQt 文档,但由于它是用 C++ 提供的,而且我只是使用 Python 的初学者程序员,我不确定我是否已经掌握了对代码语法的所有必要修改。无论如何,这就是我到目前为止所拥有的:
db = QSqlDatabase.addDatabase("database")
db.setHostName("localhost")
db.setUserName("postgres")
db.setPassword("password")
#Not sure what to do to set the connection. The C++ documentation says to put "bool ok = db.open();"
model = QSqlQueryModel()
model.setQuery("SELECT name, density, deveff FROM public." +str(filename)+ "_rezoning ORDER BY gid;")
model.setHeaderData(0, Qt.Horizontal, "Name")
model.setHeaderData(1, Qt.Horizontal, "Density")
model.setHeaderData(2, Qt.Horizontal, "DevEff")
view = QTableView()
view.setModel(model)
view.show()
当我单击 GUI 中的按钮运行计算时会发生什么,一个小的空白 QGIS 窗口短暂闪烁并消失。至少我没有收到错误,但它显然不完整。我认为部分问题是与数据库的连接丢失并且我不知道如何设置。另一个问题是我希望它显示在 GUI 的 tableView 小部件中,但我不确定如何指定它......
任何进一步的提示?对此,我真的非常感激。
罗马