問題タブ [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 に答える
126 参照

qtableview - ペイントはqtableviewのデータをクリアします

QTableView にデータを表示する必要があります。データを持つモデルがありますが、QAbstractProxyModel をサブクラス化してモデルのデータを転置しました。さらに、QItemDelegate をサブクラス化することで実現できる QTableView のボタンは 1 つだけ必要です。問題は次の場合です。 view->setItemDelegate(MyItemDelegate)(プッシュボタン用); を設定します。view->setModel(myModel); 表示->表示(); ... QItemDelegate の委譲時に、paint メソッドでペイントしたプッシュボタンしか見つかりません。検索したところ、myModel から値を設定するには setModelData() と setEditorData() が必要であることがわかりました。

PS:- view->setModel(MyModel); を試すと、表示->表示(); setItemDelegateなし... QTableViewでデータを見ることができました...しかし、委任後にデータが表示されません... QTableViewのQPushButtonのためだけにこのすべての痛み

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

qt - QTableWidget で各列を別々に整列する

このようなテーブルを作成する必要があります

テーブル

最初の列を左に、2 番目と 3 番目の列を中央に、最後の列を右に揃えて、誰かがデータを入力したときに、必要に応じて自動的に配置されるようにするにはどうすればよいですか?

私の最初のコード:

次のようなものがあることを知っています

しかし、列のすべての行に設定する方法がわかりません。

どうもありがとう !

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

windows - QItemDelegate のカスタム エディターから getOpenFileName を呼び出すとクラッシュする

前提条件:

ツリービュー項目のカスタム エディターを作成するカスタム QItemDelegate があります。エディターは、QLineEdit と QToolButton で構成されます。このボタンを使用して、ファイルを選択し、そのパスを行編集に配置するためのファイル ダイアログを開きます。QFileDialog::getOpenFileName への呼び出しを使用して、ファイル ダイアログを開きます。ダイアログはネイティブの Windows ファイル ダイアログです (これは重要です)。

エディターが初めて作成されたときは、そのボタンを何度押してもすべて正常に機能します。しかし、エディターを閉じて再度開いた後、ボタンを最初に押すとクラッシュします。クラッシュの理由は、私のカスタム エディターが最終的に削除されることです。

ここにいくつかのコードがあります:

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

python - QFileSystemModel に接続された QListView 内のファイルの色を条件付きで変更する

私は と を持ってQListViewQFileSystemModelます。での選択に基づいてQTreeViewQListViewフォルダの内容が表示されます。
ここで、条件に応じてファイル名の色を変更する必要があります。
最初のアイデアは、QListView 内のアイテムを反復処理し、条件が満たされているかどうかに応じて各アイテムの色を設定することです。ただし、これは不可能のようです。setData()メソッドはQFileSystemModelへの変更のみを受け入れ、次のEditRoleようなものを無視するためです [これを参照]

これはここでも指摘されて おり、後者の提案はQItemDelegate、QListView の項目を色付けする目的でサブクラス化することでした。

したがって、条件が満たされた場合にファイル名を緑色で表示するメソッドをサブクラス化QStyledItemDelegateして再実装しました-これは正常に機能します。paint()しかし、今は見栄えが悪いです。ファイル アイコンが失われ、"mouse_over" 効果が機能しなくなりました。

このサブクラス化はとにかく厄介な回避策ですが、私のトップレベルの質問は

  • 条件に基づいてQListView接続されたアイテムに色を付ける方法はありますか?QFileSystemModel

これが当てはまらない可能性があり、QItemDelegate のサブクラス化に固執する場合、

  • 素敵な選択とアイコンを元の動作に戻す方法はありますか?
  • QListView で QFileSystemModel に最初に使用された ItemDelegate とその使用方法を知っている人はいますか?
  • ソースコードを入手して、そこから paint メソッドをコピーすることは可能ですか?

以下は、サブクラス化を使用し、記述された動作を示す最小限のコードです。QLineEditその文字列を含むすべてのファイルが緑色で強調表示されるように、文字列を入力できる場所を使用します。

これは、QItemDelegate をサブクラス化した場合としない場合の比較です。

ここに画像の説明を入力

言及しておくと、このコードのもう 1 つの問題は、条件が変更されると、マウスを QFileView に移動して再描画を開始する必要があることです。LineEdit.textChange信号に直接接続するためにどのスロットを使用できるのだろうか。

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

c++ - Qt QItemDelegate データをコミットし、マウスでエディターを閉じる ビュー ウィジェット (listView) を離れる

マウスを離したときに、listView のエディターを呼び出す際に問題がありました。私は自分の問題を解決することができました。私には明らかではなかったので、解決策を投稿することにしました:

デリゲート ヘッダー ファイルでエディター ウィジェット ポインターを作成し、コンストラクターで値 Q_NULLPTR を指定しました。

次にcreateEditorで:

MyListView ヘッダー ファイルで、シグナル saveToModelFromEditor(); を作成しました。そして信号を発しました

commitData をモデルにコミットし、誰かがエディターを閉じたい場合にエディターを閉じる関数:

最後に、シグナルとスロットのメカニズムを使用して、シグナルを listView からエディターのスロットに接続しました。

別のコミュニティ (VoidRealms facebook グループ) から助けてもらいました。

これが誰かに役立つことを願っています。

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

python - コンボボックス QItemDelegate の作り方

QTableView でコンボボックスを提供するために、次のデリゲートを実装しました。使用例は、一般にユーザーにとって意味のない列 (キー) (数値 ID など) を同等のテキストに置き換えることです。

以下のスニペットは (適切な値を保存するためにも) 機能しますが、3 つの問題があります。

  1. 同等のテキストではなく、元の値が表示されます。
  2. QTableView で行を選択すると、すべての列が提供されますが、このデリゲートを含む列は提供されません。
  3. 理想的には、ユーザーがクリックしてコンボボックスであることを確認しなくても、コンボボックスがそのように表示されるようにしたいと考えています。

注:キーは任意の文字列にすることができます (整数である必要はありません)。典型的な例は国です (値 "France" はキー "FR" に対応します)。