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

qt - QItemDelegate: 不要な QCheckBox のペイント

QAbstractTableModel を継承する編集可能なモデルがあります。それに合わせてカスタムデリゲートも用意してください。これは私の最初の編集可能なモデルで、何かが足りないと思います。私は Nokia で見つかった例にほぼ従っています。私のモデルは、データが flags() を介して編集可能であることをデリゲートに伝えます。これを行うと、セルに QSpinBox が描画されます。

基礎となるモデルは単純な std::map です。キーは日数、値はレートです。
通常、編集可能なセルに描画されるのは QCheckBox ですが、ゴースト アウトされてからデータが表示されます。値をダブルクリックすると、QDoubleSpinbox に基づくカスタム ウィジェットであるエディターが表示されます。

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

python - ボタンデリゲートの問題

私がしばらくの間戦ってきたこの厄介な問題を誰かが助けてくれることを願っています. デリゲート列のテーブルビューにボタンを挿入するために添付されたコードで管理しました。

問題は、ボタンを押すには、含まれているセルをダブルクリックして「アクティブ化」する必要があることです。セルがアクティブになると、ボタンを押すことができるので、合計で 3 回クリックして押す必要があります。これは、平均的なユーザーにとって混乱を招く可能性があります。

この問題を pyqt メーリング リストに投稿したところ、次のような回答が得られました。

「何が起こるかというと、TableWidget がクリックを受け取るとエディターが作成されますが、エディターはまだクリックを受け取っていません。ほとんどの場合、これで完璧ですが、ボタンを描画する場合はそうではありません。」

誰かここに来たことがありますか?

前もって感謝します、クリス

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

qt - QAbstractItemModel -- リセットされていますか? QItemDelegate::paint() が呼び出される頻度が高すぎる

これは私を夢中にさせています。QAbstractItemModel、QSortFilterProxyModel、および QStyledItemDelegate があります。すべてサブクラス化されます。次の dataChanged() を発行した後、QStyledItemDelegate::paint() をこれら 2 つのインデックス (0,0、および 0,1) に対してのみ呼び出す必要があります。ただし、表示されているすべてのセルに対して呼び出されていることを確認しました。

確かに、モデルとプロキシの modelReset() および layoutChanged() シグナルの両方にスロットを接続しました。単純な printf() を実行します。ただし、呼び出されることはありません。ビューやデリゲートでファンキーなことは何もしていないと確信しています。しかし、どこを見ればよいか正確にはわかりません。

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

qt - Qt アイテム デリゲート

私は Qt が初めてで、ゆっくりと自分の道を見つけています。私の目標は、名前が長すぎるとテキストが分割される OS で見られる動作と同様に、アイコン内のファイルの名前が折り返されるようにすることですQListViewQFileSytemModel

インターネットを熟読した結果QAbstractItemDelegate、特別な描画とテキスト ラッピングを行うために拡張するカスタム クラスを作成する必要があると思います。ただし、ItemDelegate在庫QListViewクラスがそのまま使用するデフォルトを見つけることができませんでした。

デフォルト クラスが必要な理由は、独自のレンダラーで作業しているときに、Qt コンポーネントのライフサイクルについて調べて理解できるようにするためです。QListViewクラスのデフォルトのレンダラーがどこにあるか知っている人がいるかどうか疑問に思っていましたか?

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

qt - QTableViewをQTableViewのセルとして設定する方法

私はQTableView--mainTableViewを持っていますが、いくつかのセルには別のQTableView--cellTableViewを表示する必要があります。
実際、私は2つの方法を見つけました:
1)使用pTableView->setIndexWidget
2)を使用pTableView->openPersistentEditorして実装しItemDelegateます。
私は両方の方法を試しましたが、問題はまったく同じです。ItemDelegate私がなしで使用するとき、openPersistentEditorすべてがうまくいきます。そうでなければ、私が理解しているように、フォーカスとHeaderViewセル内のテーブルの問題があります。

次の問題を解決したいと思います。

  • cellTableViewのHeaderViewの代わりに、mainTableViewの背景が表示される場合があります。
  • cellTableViewのセルでキーを押すと、このセルのエディターは開かれませんが、押された記号はセルに設定されます(エディターが開いた->エディターが「FocusOut」信号を受信->エディターが閉じた場合、押された値は細胞)。
    スペースキーまたはダブルクリックで編集すると効果的です。

誰かがこの動作を解決する方法を説明できますか?

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

c++ - Qt QTableView にカスタム QItemDelegate を使用する

Qt が提供する Spin Box Delegate チュートリアルに従って、独自のQItemDelegate. を指定してセル内QComboBoxのデータを表すために使用されますが、機能していません。QTableView

ここに画像の説明を入力

私の最大の問題は、いつ使用されるかわからないことQItemDelegateです。

  • whenitemModel->setData()が使用される場合または when が使用される場合itemModel->setItem()。(「アイテム」を強調して)setItem()を再実装したためと思われますが、チュートリアルでは使用しており、正常に動作します。QItemDelegatesetData()

  • 指定したものが機能しない場合はデフォルトのものを使用することはわかっていますが、指定QItemDelegateしたものが機能しなかった場合はどうすればよいですか?

  • QTableViewデリゲートをいつ使用するかを疑う必要があります。各セルに使用するデリゲートを指定したいと思います。これは可能ですか、QTableViewそれとも全体で 1 つのデリゲートのみを使用しますか?

  • QComboBoxによって表示されたら、アイテムを入力するように指定するにはどうすればよいQTableViewですか?

ここで実装QItemDelegateしました:

  • 使用すると思われるセルを追加しようとする部分は、QComboBoxこの投稿のさらに下の mainwindow.cpp のコメント「有効」の下にあります。

qcomboboxitemdelegate.h

qcomboboxitemdelegate.cpp

mainwindow.cpp : ここで初期化しますQStandardItemModel

mainwindow.cpp : ここで更新しますQStandardItemModel

編集 1

qcomboboxdelegate.cpp

メインウィンドウ.cpp

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

python - QItemdelegate エディターを閉じると、項目が右に移動します

QTableview と QItem デリゲートが設定されています。エディターは、keyPressEvent を変更したかったため、再実装した QCombobox です。qcomboboxエディターが開いているときにキーを押すと、エディターの次の行が選択されますが、tableViewの次の行を選択する必要があり、comboBoxの行を変更したくないためです。

QComboBoxのイベントコードは次のとおりです。

しかし、キーを押すと、コンボ ボックスの右側にある tableView の項目が選択されているのに、エディターを閉じると選択がまったく変更されるのはなぜですか? そして、どうすればそれを制御できますか?

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

qt - QTでQItemDelegateの値をプログラムで変更する方法

似ていると思われる多くのトピックを既に確認しましたが、役に立たなかったので、この質問をしています。すでに存在する重複した質問を知っている場合は、私にその質問を教えてください。

私の状況:

QStandardModel を持つ QTableView の 1 列に (QCombobox) QItemDelegate があります。値を直接編集するか、コンボボックスを使用して選択すると、正常に機能するようになりました。しかし、必要に応じてテーブルをリロードできるように、テーブルの状態を保存するオプションも提供しようとしています。

問題:

プログラムで項目を設定してリロードするとテーブルに反映されません。

両方試してみました

1) インデックスを取得し、setData を使用して、

2) QStandardItem の取得とテキストの設定。

setEditorData が呼び出されていないこともわかりました。私は何を間違っていますか?このようなセルの値をコードで設定するにはどうすればよいですか?

編集:いくつかの詳細

QItemDelegate を DropDown としてサブクラス化しました。

ドロップダウン.h

ドロップダウン.cpp

これが表での使用方法です。

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

qt - QListView State_Selected のカスタム ItemDelegate

から CustomItemDelegate を作成しました。このメソッドをQStyledItemDelegate使用して、 .paint()QListView

項目をクリックしても が表示されoption.stateないのはState_Selectedなぜですか?
選択モデル、単一、行があり、選択長方形が表示されます。

qDebugこれらのみを出力します:


Qt 5.0.2 32bit (Win) を使用しています。