問題タブ [qstandarditem]

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 に答える
2578 参照

c++ - QTreeView アイテムの名前変更

私はかなり長い間見回してきましたが、QTreeView でアイテムの名前を変更しようとするための解決策を見つけることができませんでした。基本的にこれが意味することは、QTreeView で何かをダブルクリックすると、アイテムの名前を変更するオプションが表示されるということです。ユーザーが名前の編集を完了したら、QStandardItem に関連付けられている特定のアイテム名を変更できるように、編集されたツリーまたは QStandardItem へのインデックスを通知するシグナルが必要です。

これは少し漠然としているかもしれませんが、私のソースを提供することはできません. 他に説明が必要な場合は、最善を尽くします。理解を深めるために、話している内容の画像も含めます。

ダブルクリックで名前変更

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

c++ - QStyledItemDelegate の再実装: マウスオーバー時のアイテムの背景色

私の当初の目的は、特定の列の項目 (QStandardItem) にリッチ テキストをフィードすることでした。そのため、提案どおりにサブクラス デリゲートを実装しました。

1 つのことを除いて、すべて問題ないように見えました。これらの項目の上にマウス ポインターを移動すると、それらがまったく強調表示されませんでした。(元のペイント方法が使用されている行の他のアイテムが強調表示されました。)ただし、アイテムの選択は正常に機能しました。次に、行を追加しました

アイテムのテキストのハイライトを処理できましたが、背景もハイライトする方法がわかりません。まだ白いです。何か案は?

関連するコードは次のとおりです。

0 投票する
3 に答える
1209 参照

c++ - QModelIndexを使用してQTreeViewでchildWidgetsにアクセスするには?

Qt ライブラリ (バージョン 4.8) を使用するアプリケーションに取り組んでいます。

QStandardItemModel を持つ QTreeView があります。私のウィジェットは次のようになります。

アイテム1

サブアイテム11

サブアイテム12

アイテム2

サブアイテム21

サブアイテム22

アイテム3

サブアイテム31

サブアイテム32

QTreeView に項目を追加する方法は次のとおりです。

ユーザーがアイテムをダブルクリックしたときにのみアクションを実行したい (サブアイテムをクリックしても何もしない)。そこで、 doubleClicked(const QModelIndex & index)シグナルを使用します。

ユーザーがダブルクリックしたアイテム/サブアイテムに関する情報を処理したい。だから私は私のアイテム/サブアイテムの行を取得します:

しかし、アイテム/サブアイテムを参照してその名前を表示したり、子があるかどうかを確認しようとするたびに、アイテムにしかアクセスできません:

私の質問は、スロット内のサブアイテム (アイテムとサブアイテムの間のアイテム) にアクセスするにはどうすればよいですか? または、どうすればそれらが信号を発するのを防ぐことができますか? それらを無効にすることはできません。ユーザーにとって混乱を招く可能性があります。

編集:問題は、アイテムまたはサブアイテムをクリックして実行するたびに:

また:

私は結果として真実になります。そのため、アイテムのみを参照できます。

私の質問は:サブアイテムを参照する正しい方法は何ですか?

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

qt - ユーザーデータを含む QStandardItem

私のアプリには、QStandardItemModel を持つ QListView があります。QStandardItem を拡張して独自のデータを追加することで正常に機能するユーザー データを保持するアイテムが必要です。しかし、リスト内のアイテムをドラッグして並べ替えられるようにしたいのですが、ここで問題が始まります。QTはアイテムをドロップするとクローンを作成し、テストと色をコピーするようですが、私のユーザーデータについては知りません。clone()で解いてみましたが、アイテムのプロトタイプ(空のアイテム)でしか呼び出されません。また、 setData() 関数をオーバーライドして、ユーザー データにロール UserRole を使用しようとしましたが、ドラッグしてもコピーされません。

誰かが似たような実例を持っていますか?

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

c++ - QTreeViewモデルを使用したQt itemChangedシグナルは、第1レベルのアイテムでのみ機能します

私のqtコードで何か間違ったことをしたかどうかはわかりません。itemChangedアイテムデータが変更されるたびにシグナルが発行される必要があります。次のコードを使用してモデルを作成します。

onChangedそして、アイテムが変更されるたびに呼び出されるようにしたいです-たとえば、アイテムのテキストが編集されたり、チェックボックスがクリックされたりします。しかし、いずれの場合もitemChanged、item2/3 レベルのアイテムではなく、"item1-..." レベルのアイテム (第 1 レベルのアイテム) でのみシグナルをトリガーしました。なんで?そして、どうすればそれを正しくすることができますか?

PS: QTreeWidget を使用した同じコードは完全に機能しますが、アプリでマルチスレッドを使用しているため、モデルとビューを分割する必要があります。QTreeWidget アイテムは非 GUI スレッドで作成できず、qtreewidget は自己作成モデルを使用できません。これが、QStandardItem で QTreeView を使用しなければならない理由です。

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

python - QStandardItem の Pyside setData フラグ

ここで 2 つの質問があります。

  1. QstandardItem の setData メソッドを使用して設定できるすべてのフラグ/プロパティのリストはどこにありますか? 私はそれをオンラインで見つけたので、私は以下のものしか知りません。

  2. QStandardItem の Font を太字に設定するにはどうすればよいですか?

パイソン