3

私はPyQtとQtDesignerを初めて使用し、qWidgetsをSQLiteデータベースのテーブルと列に関連付けるための簡単なメソッドを作成しようとしています。私のアイデアは、デザイナーの各qWidgetに2つのカスタムプロパティをタグ付けすることでした。1つはテーブル名、もう1つは列名です。後で、デザイナーから提供された情報を使用して、qwidetsとSQLiteデータベースの間に関係を作成する独自のクラスを構築します。

Designerでカスタムプロパティを追加することは問題なく機能するようですが、これらのカスタムプロパティのコードは、designerのxmlをpythonに変換するときに生成されません(UICを使用)。誰かがこれを成功させましたか?おそらくこれを行うためのより良い方法がありますか?

ありがとう、

エリック

4

3 に答える 3

2

Designer で「myproperty」というプロパティを追加した場合は、次のコマンドでフェッチします。

mywidget.property("myproperty")

これは pyqt 4.8.3 では正常に機能しますが、以前のバージョンでは機能しなかった可能性があります。

于 2011-04-19T01:57:35.250 に答える
0

Designerツールを使用することはできませんでした。通常、いくつかの大まかなレイアウトを実行し、pyuic手作業で他のものを使用して編集および追加することになります。

QWidget説明した追加のプロパティを継承し、持つ独自のカスタムクラスを作成することで、タスクを簡単に実行できるようです。デザイナーでカスタムウィジェットを使用しようとした私の経験では、「より簡単な」方法は、クラスを自分で作成してから、手動でレイアウトを設定することだと思います。

私はこれがあなたの質問に正確に答えないことを知っています、しかし多分あなたは私の提案のいくつかを試すでしょう。

于 2010-02-24T00:59:39.767 に答える
0

エリックのこの記事をチェックしてください。特に「プラグインの作成」というセクションを見てください。River Bank Computing には、別の優れたPyQt リファレンスがあります。

編集:私はもう少し読んでいますが、これを自動的に行う方法が見つかりません。設計時ではなく実行時に動的プロパティを追加しても問題がなければ、同じ最終結果を達成できます。ここでは、QWidget が継承する QObject の setProperty() メソッドについて説明します。

それがうまくいかない場合は、一般的ではないアプローチを使用する方がよいようです。一般的な QWidget を使用する代わりに、QSqlTableModel から派生したカスタム クラスを使用して、接続情報を追跡できる場合があります。もう 1 つの方法は、QTableView を使用して、自分でクエリを実行してデータを入力することです。ここここに Qt のデータベースに関する記事があります。それらの 1 つから新しいデザインのインスピレーションが得られるかもしれません。

于 2010-02-23T20:07:59.567 に答える