問題タブ [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.
qt - QAbstractItemDelegate を介して、折りたたまれた QTreeView アイテムを別の方法でペイントする
アイテムが折りたたまれたときに別の方法でペイントしたいシナリオがありますがQTreeView
、モデルもデリゲートもビュー内のアイテムの折りたたまれた/展開された状態を認識していないため、そうする方法がわかりません.
これは、異なるスタイルにしたいだけの場合ではないことに注意してください。何をペイントするかを知るためにインデックスごとにモデルからデータを取得する必要があるため、スタイルシートはそれをカットしません。
qt - QItemDelegate: テキストを 90 度回転する
テキストを 90 度の角度で表示したいセル (1 列、5 行) のスパンがあります。ジオメトリのサイズを変更する必要があることはわかっていますが、今のところ、テキストを表示することさえできません。真ん中の行では、サブクラス化された QItemDelegate::paint() 内でこれを行っています
基本的に、この場合は何も印刷されません。他のいくつかの質問から、このようなコードにたどり着きました。何か不足していますか?
qt - Qt QAbstractItemModel 関数 data() が未定義の役割で呼び出されました
andを使用してカスタム リストを作成したいQListView
ので、 を拡張しQListView
、特定のメソッドを とともに実装する必要がありました。一見すると画面に正しく表示されますが、リスト モデルにデータを入力した後に問題が発生します。関数は、異なる役割を持つ項目モデルごとに 4 ~ 5 回呼び出されます(一部は未定義の役割/範囲外/おそらくランダムです)。リストモデルの初期化後だけではありません!リスト要素にカーソルを合わせると、ビューは正しいインデックスとロールで data(index,role)を呼び出しますが、直後に予期しないロール値で再度呼び出されます。QItemDelegate
QAbstractListModel
QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const
data(index,role)
挙動不審のようです。奇妙な電話の発信元を見つけることができませんでした。カスタム クラスのすべてのメソッドにログを記録して、間違った値でメソッドを誤って呼び出しないようにdata(index,role)
しています。
どこを見ればいいのか、なぜこの奇妙な呼び出しが発生するのか、誰か考えがありますか?
編集 「奇妙な」呼び出しのソースは次のとおりです。
どういうわけかそれを呼び出すと、異なるロール値QItemDelegate::sizeHint()
でトリガーされます。data()
私の場合、0(0,1,2,3) から始まるロール値を定義しました。@Jens によると、これらの値は予約されています。カスタムロールの開始値を変更すると、問題が解決しました。
c++ - QItemDelegate、closeEditor() シグナルで独自の EndEditHint を提供する方法は?
からサブクラス化された独自のテーブル モデルがありQAbstractTableModel
ます。私のビューにインストールされています(からサブクラス化されていますQTableView
)。ビュー内では、QItemDelegate
項目を編集するためにデリゲート クラス (からサブクラス化) を使用しています。
次の動作を設定したい: デリゲートを使用してデータの編集を終了すると、モデルの次の項目 (次の行と同じ列の項目) が編集可能になるはずです。
ドキュメントには、シグナルQAbstractItemDelegate::EditNextItem
で送信されるヒントによって提供されると書かれていcloseEditor()
ます。ただし、デフォルトでは、このシグナルはQAbstractItemDelegate::NoHint
パラメータとともに送信されます。QItemDelegate
問題は、たとえば次のような基本的な仮想関数を再実装するときに、このシグナルを明示的に呼び出す必要がないことsetModelData()
です。
QAbstractItemDelegate()
ドキュメントには、このシグナルは、コンストラクターの呼び出し中にアイテム デリゲートにインストールされた内部イベント フィルターによって送信されるとも書かれています。
どうすれば独自EndEditHint
のcloseEditor()
シグナルを提供できますか?
python - QTableViewがクリックされたときにデリゲートアイテムを取得する方法
以下のコードは、単一のQTableView
. QItemDelegate
PersistentEditor として割り当てられています。作成されるエディタには 2 種類ありQLineEdit
ます。 は列 0 用に作成され、「QComboBox」は列 1 用に作成されます。
をクリックするtableView
と、両方のエディターのインスタンスを取得したいと思います: LineEdit のインスタンスとコンボボックスのインスタンスです。これを達成する方法は?