問題タブ [qtreeview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
794 参照

qt - QTreeView: 選択したすべてのセルをユーザーが入力した値に一度に設定する

ExtendedSelection 属性を持つ QTreeView があります (ユーザーは連続していない複数のセル範囲を選択できます)。

アプリでこれらの複数のセルを選択してから値を入力し、すべてのセルがその値を取得できるようにしたいと考えています。

私の問題は、モデルに渡されるセルの全範囲を取得する方法がわからないことです。現在、setData メソッドに渡されるインデックスはアクティブ セルのみであり、選択されたセルの全範囲ではありません。

以前は、モデルが変更されるたびに現在選択されている範囲をビューに保存し、それを使用して変更するセルを制御していました。これは一種のハッキーに思えますが、より優れたエレガントなソリューションを誰かが持っているのではないかと思います。

ちなみに、私は PyQt を使用していますが、これは QT 自体にも当てはまると思います。

ありがとう!

0 投票する
2 に答える
10484 参照

qt - PyQt QTreeView: selectionChanged シグナルに接続しようとしています

PyQt を使用して QTreeView の selectionChanged シグナルに接続しようとしています。私は過去に(QTableViewのために)これを行い、成功しました。しかし、今では同様のコードを動作させることができません。

次のコード例では、展開された信号と折りたたまれた信号には正常に接続されていますが、selectionChanged またはアクティブ化された信号には接続されていません。誰かが私が間違っていることを教えてもらえますか? ありがとう。

0 投票する
1 に答える
15719 参照

python - PyQt でドラッグ アンド ドロップをサポートする QTreeView

PyQt 4 では、ドラッグ アンド ドロップ操作で構造を再編成できる QTreeView を作成したいと考えています。

QTreeView に独自のモデル (QAbstractItemModel) を実装したので、QTreeView はデータを適切に表示します。ここで、ツリーのノードにドラッグ アンド ドロップのサポートを追加して、ツリー内のノードをある親から別の親に移動したり、ドラッグ コピーなどを実行したりしたいと考えていますが、これを達成するための完全なチュートリアルが見つかりません。QTreeWidget のチュートリアルとヒントはほとんど見つかりませんでしたが、カスタム モデルの QTreeView は見つかりませんでした。誰かが私にどこを見るべきか教えてもらえますか?

ありがとうございました。

0 投票する
1 に答える
1113 参照

proxy - QTreeView: コンテンツのフィルタリング - ベスト プラクティスの検索

コンテンツをフィルタリングしたい QTreeView があります。これらのコンテンツを最上位の子 (ルート インデックスのすぐ下にある子) でのみフィルター処理したいと考えています。現在、QTreeView サブクラスで単純なフィルタリング メソッドを作成し、一致しない行を選択的に非表示にすることで、これを実現しています。

上記のアプローチはうまく機能しているように見えますが、QSortFilterProxyModel を使用してこれを再実装する必要があるかどうか疑問に思っています。もしそうなら、どのような利点がありますか?

QSortFilterProxyModel の使用に変更した場合、いくつかの (できれば小さな) 質問があります。

1)トップレベルの子のみをフィルタリングしているため、実際にソートを行っていたメソッドを再実装して、すべての孫をそのままにしておく必要がありますよね?

2) 私のデータ モデルには、独自のキーボード ナビゲーションなどを担当する多数のカスタム メソッドが含まれています。これらをプロキシ モデルに再実装し、データ モデルのメソッドを指すようにしますか? その場合、モデルを参照するにはどうすればよいですか? QTreeView の model() メソッドに相当するものを見つけることができないようです。

ありがとう!

0 投票する
1 に答える
3600 参照

qt - qt: QTreeView - ドラッグ アンド ドロップを特定の祖父母 (祖先) 内でのみ発生するように制限する

項目の並べ替えを可能にするドラッグ アンド ドロップを実装した QTreeView があります。

次のツリーの例を考えます。

ドラッグ可能とマークされているものはすべてドラッグできます。親としてマークされているものはすべて、子としてドラッグ可能なアイテムを持つことができます。修正済みとマークされているものはすべて、修正済みです。

私の質問は、特定の親内にとどまるようにアイテムのドロップを制限するにはどうすればよいですか? たとえば、'bloodOrange' をドラッグして、'apple' または 'orange' の子にすることはできます (または、'Fruit' 内で序数の位置を変更することもできます) が、ニンジンの子にすることはできません。やレタスなど

特定の親内にとどまるようにドロップ操作を制限する部分を除いて、すべてのフラグを正しくコーディングすることができました。現在ドラッグされている QModelIndex をキャプチャする方法がわかりません (そこから親、祖父母などを判断できます)。

ありがとう!

これが役立つ場合に備えて、flags メソッドのコードを次に示します。 lettuce と icebergLettuce) はどちらも Params です。

0 投票する
2 に答える
4020 参照

python - QMimeData の Python オブジェクト

カスタム モデルに基づいてドラッグ アンド ドロップ QTreeView を実装しています。すべて正常に動作し、ツリーにデータが表示され、ドラッグ アンド ドロップが有効になり、ドラッグされたデータをドロップして転送する最後のステップが目の前にあります。これを行うには、モデルに mimeTypes、mimeData、および dropMimeData メソッドを実装する必要があります。そして今、私の質問: QMimeData を介して任意の Python オブジェクトを渡す簡単な標準的な方法はありますか? Python クラス Person の階層を表示する QTreeView 内で内部移動を行っています。そして、それらを並べ替えたいと思います。アプリケーションの外部にドラッグ アンド ドロップすることはできません。制御できない場合でも同様です。1 つのチュートリアルのみが見つかりました: link text。しかし、それが唯一の方法ですか?Python オブジェクトを ByteArray にエンコードしないと実行できません。唯一のクラスの Person には、本当に簡単なソリューションが必要です。ありがとうございました。

0 投票する
1 に答える
4011 参照

qt - pyqt: QTreeView - ドラッグ アンド ドロップの例を見つけましたが、1 つの小さな部分を解読するのに助けが必要です

次のコードを解読するためのほんの少しの助けを探しています( http://www.mail-archive.com/pyqt@riverbankcomputing.com/msg17197.htmlから取られた例です)。その投稿の内容に基づいて、ここに再投稿しても問題ないと思います。私が含めているコードの長さによって先延ばしにしないでください、私はそれのほんの一部を明確にする必要があるだけです:

私が疑問に思っているコードスニペットを以下に示します(完全を期すために、その後に例全体も投稿します)。私の質問は2つあります:

1) removeRows が呼び出されるのはいつですか?

2) 作成者が実際に移動中のノードを (ディープ コピーを使用して) コピーするのはなぜですか? appendChild と removeChild (彼のデータ ストア内のノードの 2 つのメソッド) を使用して、問題のノードの親を変更するだけでよいと思います。

完全を期すために、以下のすべてのコードも含めています。

0 投票する
1 に答える
4383 参照

qt - qt:pyqt:QTreeViewの内部ドラッグアンドドロップがほぼ機能しています...ドラッグされたアイテムが消えます

QTreeView内でドラッグアンドドロップの並べ替えがほぼ完全に機能しています。ドロップされたオブジェクトが表示されないことを除いて、すべて問題ないようです(ただし、実際に存在するはずの場所に存在することを証明するさまざまな方法で参照できます)。誰かが少し時間を取って、次のコードを実行して、私が間違っていることを知らせてくれたら、本当にありがたいです。私はこのプロセスに1週間以上頭を悩ませてきました:

次のコードをコピーして実行できるはずです(すべてが正しく機能していることを示しているように見えるが、明らかに何かがオフになっている印刷ステートメントがたくさんあります):

0 投票する
2 に答える
2352 参照

c++ - Qt - QTreeView アイテムの代わりに QPushButtons

QTreeView のすべてのアイテムに QPushButtons を追加することは可能ですか? たとえば、TreeItem (ボタン) をクリックすると、その子もボタンとして表示されますか? 私は標準のQTreeViewを持っています。

0 投票する
1 に答える
24057 参照

c++ - QAbstractItemModel と QTreeView

QtreeView で独自のデータ モデルを表示する作業例 (c++) が必要です。