問題タブ [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 - QItemDelegate: 不要な QCheckBox のペイント
QAbstractTableModel を継承する編集可能なモデルがあります。それに合わせてカスタムデリゲートも用意してください。これは私の最初の編集可能なモデルで、何かが足りないと思います。私は Nokia で見つかった例にほぼ従っています。私のモデルは、データが flags() を介して編集可能であることをデリゲートに伝えます。これを行うと、セルに QSpinBox が描画されます。
基礎となるモデルは単純な std::map です。キーは日数、値はレートです。
通常、編集可能なセルに描画されるのは QCheckBox ですが、ゴースト アウトされてからデータが表示されます。値をダブルクリックすると、QDoubleSpinbox に基づくカスタム ウィジェットであるエディターが表示されます。
python - ボタンデリゲートの問題
私がしばらくの間戦ってきたこの厄介な問題を誰かが助けてくれることを願っています. デリゲート列のテーブルビューにボタンを挿入するために添付されたコードで管理しました。
問題は、ボタンを押すには、含まれているセルをダブルクリックして「アクティブ化」する必要があることです。セルがアクティブになると、ボタンを押すことができるので、合計で 3 回クリックして押す必要があります。これは、平均的なユーザーにとって混乱を招く可能性があります。
この問題を pyqt メーリング リストに投稿したところ、次のような回答が得られました。
「何が起こるかというと、TableWidget がクリックを受け取るとエディターが作成されますが、エディターはまだクリックを受け取っていません。ほとんどの場合、これで完璧ですが、ボタンを描画する場合はそうではありません。」
誰かここに来たことがありますか?
前もって感謝します、クリス
qt - QAbstractItemModel -- リセットされていますか? QItemDelegate::paint() が呼び出される頻度が高すぎる
これは私を夢中にさせています。QAbstractItemModel、QSortFilterProxyModel、および QStyledItemDelegate があります。すべてサブクラス化されます。次の dataChanged() を発行した後、QStyledItemDelegate::paint() をこれら 2 つのインデックス (0,0、および 0,1) に対してのみ呼び出す必要があります。ただし、表示されているすべてのセルに対して呼び出されていることを確認しました。
確かに、モデルとプロキシの modelReset() および layoutChanged() シグナルの両方にスロットを接続しました。単純な printf() を実行します。ただし、呼び出されることはありません。ビューやデリゲートでファンキーなことは何もしていないと確信しています。しかし、どこを見ればよいか正確にはわかりません。
qt - Qt アイテム デリゲート
私は Qt が初めてで、ゆっくりと自分の道を見つけています。私の目標は、名前が長すぎるとテキストが分割される OS で見られる動作と同様に、アイコン内のファイルの名前が折り返されるようにすることですQListView
。QFileSytemModel
インターネットを熟読した結果QAbstractItemDelegate
、特別な描画とテキスト ラッピングを行うために拡張するカスタム クラスを作成する必要があると思います。ただし、ItemDelegate
在庫QListView
クラスがそのまま使用するデフォルトを見つけることができませんでした。
デフォルト クラスが必要な理由は、独自のレンダラーで作業しているときに、Qt コンポーネントのライフサイクルについて調べて理解できるようにするためです。QListView
クラスのデフォルトのレンダラーがどこにあるか知っている人がいるかどうか疑問に思っていましたか?
qt - QTableViewをQTableViewのセルとして設定する方法
私はQTableView
--mainTableViewを持っていますが、いくつかのセルには別のQTableView
--cellTableViewを表示する必要があります。
実際、私は2つの方法を見つけました:
1)使用pTableView->setIndexWidget
2)を使用pTableView->openPersistentEditor
して実装しItemDelegate
ます。
私は両方の方法を試しましたが、問題はまったく同じです。ItemDelegate
私がなしで使用するとき、openPersistentEditor
すべてがうまくいきます。そうでなければ、私が理解しているように、フォーカスとHeaderView
セル内のテーブルの問題があります。
次の問題を解決したいと思います。
- cellTableViewのHeaderViewの代わりに、mainTableViewの背景が表示される場合があります。
- cellTableViewのセルでキーを押すと、このセルのエディターは開かれませんが、押された記号はセルに設定されます(エディターが開いた->エディターが「FocusOut」信号を受信->エディターが閉じた場合、押された値は細胞)。
スペースキーまたはダブルクリックで編集すると効果的です。
誰かがこの動作を解決する方法を説明できますか?
c++ - Qt QTableView にカスタム QItemDelegate を使用する
Qt が提供する Spin Box Delegate チュートリアルに従って、独自のQItemDelegate
. を指定してセル内QComboBox
のデータを表すために使用されますが、機能していません。QTableView
私の最大の問題は、いつ使用されるかわからないことQItemDelegate
です。
when
itemModel->setData()
が使用される場合または when が使用される場合itemModel->setItem()
。(「アイテム」を強調して)setItem()
を再実装したためと思われますが、チュートリアルでは使用しており、正常に動作します。QItemDelegate
setData()
指定したものが機能しない場合はデフォルトのものを使用することはわかっていますが、指定
QItemDelegate
したものが機能しなかった場合はどうすればよいですか?QTableView
デリゲートをいつ使用するかを疑う必要があります。各セルに使用するデリゲートを指定したいと思います。これは可能ですか、QTableView
それとも全体で 1 つのデリゲートのみを使用しますか?QComboBox
によって表示されたら、アイテムを入力するように指定するにはどうすればよいQTableView
ですか?
ここで実装QItemDelegate
しました:
- 使用すると思われるセルを追加しようとする部分は、
QComboBox
この投稿のさらに下の mainwindow.cpp のコメント「有効」の下にあります。
qcomboboxitemdelegate.h
qcomboboxitemdelegate.cpp
mainwindow.cpp : ここで初期化しますQStandardItemModel
mainwindow.cpp : ここで更新しますQStandardItemModel
編集 1
qcomboboxdelegate.cpp
メインウィンドウ.cpp
python - QItemdelegate エディターを閉じると、項目が右に移動します
QTableview と QItem デリゲートが設定されています。エディターは、keyPressEvent を変更したかったため、再実装した QCombobox です。qcomboboxエディターが開いているときにキーを押すと、エディターの次の行が選択されますが、tableViewの次の行を選択する必要があり、comboBoxの行を変更したくないためです。
QComboBoxのイベントコードは次のとおりです。
しかし、キーを押すと、コンボ ボックスの右側にある tableView の項目が選択されているのに、エディターを閉じると選択がまったく変更されるのはなぜですか? そして、どうすればそれを制御できますか?
qt - QTでQItemDelegateの値をプログラムで変更する方法
似ていると思われる多くのトピックを既に確認しましたが、役に立たなかったので、この質問をしています。すでに存在する重複した質問を知っている場合は、私にその質問を教えてください。
私の状況:
QStandardModel を持つ QTableView の 1 列に (QCombobox) QItemDelegate があります。値を直接編集するか、コンボボックスを使用して選択すると、正常に機能するようになりました。しかし、必要に応じてテーブルをリロードできるように、テーブルの状態を保存するオプションも提供しようとしています。
問題:
プログラムで項目を設定してリロードするとテーブルに反映されません。
両方試してみました
1) インデックスを取得し、setData を使用して、
2) QStandardItem の取得とテキストの設定。
setEditorData が呼び出されていないこともわかりました。私は何を間違っていますか?このようなセルの値をコードで設定するにはどうすればよいですか?
編集:いくつかの詳細
QItemDelegate を DropDown としてサブクラス化しました。
ドロップダウン.h
ドロップダウン.cpp
これが表での使用方法です。
qt - QListView State_Selected のカスタム ItemDelegate
から CustomItemDelegate を作成しました。このメソッドをQStyledItemDelegate
使用して、 .paint()
QListView
項目をクリックしても が表示されoption.state
ないのはState_Selected
なぜですか?
選択モデル、単一、行があり、選択長方形が表示されます。
qDebug
これらのみを出力します:
Qt 5.0.2 32bit (Win) を使用しています。