Postgres をバックエンドとして使用し、QT Designer を使用して GUI を作成する Quantum GIS でプラグインを作成しています。私はpsycopg2を使用してデータベースでスクリプトを実行し、クエリの結果を取得してGUIでラベルの値を設定しています。このようなものは私にとってはうまくいっています。
「計算」ボタンをクリックしていくつかのクエリを実行した後、私が今やりたいことは、結果のテーブルをプラグインで TableView として表示することです。テーブルを表示する目的で明示的にウィジェットが存在することは知っていますが、その方法がわかりません。オンラインで見たほとんどの例では後者を使用しているため、psycopg2 または PySide を使用する必要があるかどうかはわかりません。
TableView を作成するために psycopg2 と PySide のどちらを使用する必要があるかを誰かに教えてもらえないかと思っています。次に、Postgres でクエリの結果を表示するために、TableView ウィジェットへの「シグナル」はどうあるべきか疑問に思っています。最後に、誰でもコードの設定方法を教えていただけると助かります。
乾杯、
ローマン
私は先に進んで 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 ウィンドウが一瞬点滅して消えます。少なくともエラーは発生していませんが、明らかに完全ではありません。問題の一部は、欠落しているデータベースへの接続であり、設定方法がわからないことだと思います。もう1つの問題は、これをGUIのtableViewウィジェットに表示したいのですが、これを指定する方法がわかりません...
さらにヒントはありますか?ほんとうにありがとう。
ローマン