【问题标题】:QGIS -Listing Database tables in QtreeviewQGIS - 在 Qtreeview 中列出数据库表
【发布时间】:2012-03-03 17:53:41
【问题描述】:

我正在为 QGIS 使用 python 插件。我使用 psycopg2 进行了 python 到 postgres 的连接。 我从数据库中检索表的查询是:

cursor = self.con.cursor()
cursor.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")

records = cursor.fetchall()

record 变量包含所有表格。我的 .ui 表单上有一个 QTreeView 组件。 如何将记录变量中的所有表显示到 QTreeView 中。我们应该使用 QAbstractItemModel。但不知道如何去做。

【问题讨论】:

    标签: python qgis plugins


    【解决方案1】:

    您的 QTreeWidget 中是否有顶级项目(您可以使用 Qt 4 Designer 添加它)?在这种情况下,您可以简单地使用 .child().setText() 添加您的条目​​:

    num_layers = dlg.ui.treeWidget.topLevelItem(item).childCount() QtGui.QTreeWidgetItem(dlg.ui.treeWidget.topLevelItem(item)) dlg.ui.treeWidget.topLevelItem(item).child(num_layers).setText(0, name)

    http://ghydraulic.git.sourceforge.net/git/gitweb.cgi?p=ghydraulic/ghydraulic;a=blob;f=ghydraulicsplugin.py;h=19d44b2c65b1af6cd0b26c05b7e6606ed05b1965;hb=HEAD 包含完整的示例。

    如果您想将元素添加为顶级元素,可以使用 QTreeWidget::addTopLevelItem() 插入它们

    http://developer.qt.nokia.com/doc/qt-4.8/qtreewidget.html#addTopLevelItem

    您使用哪个 Qt 版本?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-12
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多