問題タブ [qitemdelegate]

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

qt - QAbstractItemDelegate を介して、折りたたまれた QTreeView アイテムを別の方法でペイントする

アイテムが折りたたまれたときに別の方法でペイントしたいシナリオがありますがQTreeView、モデルもデリゲートもビュー内のアイテムの折りたたまれた/展開された状態を認識していないため、そうする方法がわかりません.

これは、異なるスタイルにしたいだけの場合ではないことに注意してください。何をペイントするかを知るためにインデックスごとにモデルからデータを取得する必要があるため、スタイルシートはそれをカットしません。

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

qt - QItemDelegate: テキストを 90 度回転する

テキストを 90 度の角度で表示したいセル (1 列、5 行) のスパンがあります。ジオメトリのサイズを変更する必要があることはわかっていますが、今のところ、テキストを表示することさえできません。真ん中の行では、サブクラス化された QItemDelegate::paint() 内でこれを行っています

基本的に、この場合は何も印刷されません。他のいくつかの質問から、このようなコードにたどり着きました。何か不足していますか?

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

qt - Qt QAbstractItemModel 関数 data() が未定義の役割で呼び出されました

andを使用してカスタム リストを作成したいQListViewので、 を拡張しQListView、特定のメソッドを とともに実装する必要がありました。一見すると画面に正しく表示されますが、リスト モデルにデータを入力した後に問題が発生します。関数は、異なる役割を持つ項目モデルごとに 4 ~ 5 回呼び出されます(一部は未定義の役割/範囲外/おそらくランダムです)。リストモデルの初期化後だけではありません!リスト要素にカーソルを合わせると、ビューは正しいインデックスとロールで data(index,role)を呼び出しますが、直後に予期しないロール値で再度呼び出されますQItemDelegateQAbstractListModelQAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) constdata(index,role)

挙動不審のようです。奇妙な電話の発信元を見つけることができませんでした。カスタム クラスのすべてのメソッドにログを記録して、間違った値でメソッドを誤って呼び出しないようにdata(index,role)しています。

どこを見ればいいのか、なぜこの奇妙な呼び出しが発生するのか、誰か考えがありますか?

編集 「奇妙な」呼び出しのソースは次のとおりです。

どういうわけかそれを呼び出すと、異なるロール値QItemDelegate::sizeHint()でトリガーされます。data()

私の場合、0(0,1,2,3) から始まるロール値を定義しました。@Jens によると、これらの値は予約されています。カスタムロールの開始値を変更すると、問題が解決しました。

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

qt - QTreeView にさまざまな種類のデリゲートを追加する方法

添付図のような QTreeView (QTreeWidget ではない) 構造を作成したい. これが QT のプロパティ エディタです。QT-4.6を使用しています

ここに画像の説明を入力

2 列目では、さまざまな条件に応じて、スピン ボックス、ドロップ ダウン、チェックボックス、テキスト編集などを使用できます。特定の列。ドキュメントから、セルにデリゲートを設定するための直接的な API がないことは明らかです (むしろ、完全なウィジェットまたは行または列で使用できます)。

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

c++ - QItemDelegate、closeEditor() シグナルで独自の EndEditHint を提供する方法は?

からサブクラス化された独自のテーブル モデルがありQAbstractTableModelます。私のビューにインストールされています(からサブクラス化されていますQTableView)。ビュー内では、QItemDelegate項目を編集するためにデリゲート クラス (からサブクラス化) を使用しています。

次の動作を設定したい: デリゲートを使用してデータの編集を終了すると、モデルの次の項目 (次の行と同じ列の項目) が編集可能になるはずです。

ドキュメントには、シグナルQAbstractItemDelegate::EditNextItemで送信されるヒントによって提供されると書かれていcloseEditor()ます。ただし、デフォルトでは、このシグナルはQAbstractItemDelegate::NoHintパラメータとともに送信されます。QItemDelegate問題は、たとえば次のような基本的な仮想関数を再実装するときに、このシグナルを明示的に呼び出す必要がないことsetModelData()です。

QAbstractItemDelegate()ドキュメントには、このシグナルは、コンストラクターの呼び出し中にアイテム デリゲートにインストールされた内部イベント フィルターによって送信されるとも書かれています。

どうすれば独自EndEditHintcloseEditor()シグナルを提供できますか?

0 投票する
0 に答える
2064 参照

python - QTableViewがクリックされたときにデリゲートアイテムを取得する方法

以下のコードは、単一のQTableView. QItemDelegatePersistentEditor として割り当てられています。作成されるエディタには 2 種類ありQLineEditます。 は列 0 用に作成され、「QComboBox」は列 1 用に作成されます。

をクリックするtableViewと、両方のエディターのインスタンスを取得したいと思います: LineEdit のインスタンスとコンボボックスのインスタンスです。これを達成する方法は?