2011-02-08 22 views
0

ねえ。 私はQt3からQt4にソフトウェアを移植するプロジェクトに取り組んでいます。そのPyQtで、私はC + +と元のQt4ライブラリで作業していたかのように答えてもらえます。Qt4でチェックボックスリストを作る[PyQt4]

古いコードでは、チェックボックス付きリストビューが使用されています。 Qt4のeqvalientを見つけようとするとき、nokiaは新しいコードでQ3CheckListItemを使用しないように勧めますが、Qt4 eqvalientへのリンクはありません。

解決策はデリゲートを持っているように見え、アイテムにそれを設定します。このようにmyListView.setDelegate(delegate)。デリゲートはチェックボックスなどを作っていますが、これについての例やチュートリアルは見つかりません。

おかげ

+0

ブール値を保持できるデリゲートとカスタムモデルがないと、私は考えられません。私はそれを行ういくつかのコードをPythonとQTableViewのために持っています。あなたが興味があれば、答えとして投稿することができます。 –

+0

ありがとう、Pythonについて書いているのは、 – Johannes

+0

です(BTWは@nameを使用していますが、短縮されているので、誰かに返信すると通知されます)、私はPyQtに関する部分を見逃しています。私はデリゲートを使用しなければならないと間違っていたように見えるので、私のコードを投稿することはここで意味をなさないと思います。しかし、Pythonで書かれたモデルは、PythonとC++のマーシャリング/アンマーシャリングが非常に遅いため、かなり遅いことに注意する必要があります。あなたのモデルにどれくらいのアイテムがあるかによって異なります。 –

答えて

3

あなたはあなたのビューでチェック可能なアイテムを持っているために、デリゲートを必要としないで、あなただけのそれに応じてモデルを実装する必要があります。 .flags()の実装でQt.ItemIsUserCheckableを返し、.data().setData()example)の実装でQt.CheckStateRoleを処理します。

+0

うわー、素晴らしいコードあまりにもありがとう:) – Johannes

+0

恐ろしい。私は、そのような種類のものは、代理人を使わずにすぐに利用できるということを知らなかった。 –

関連する問題