問題タブ [qabstractitemview]

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 投票する
0 に答える
770 参照

c++ - ウィジェットの有効/無効に応じて QAbstractItemModel から特別なテキストの色を返す方法

の一部の列ではQAbstractItemModel、テキストを特別な色で表示する必要があります。data()その色をwhere に返すことでこれを行っていrole == Qt::TextColorRoleます。このモデルを表示するビューが無効になるまでは問題ありませんが、他のすべてのテキストがグレー/ミュートされている間、これらの特別な色はまだ「明るい」ままです。

ウィジェットが無効になっているときに特別な色を返す簡単な方法はありますか?

失敗した (または複雑すぎる) アイデア:

  1. 有効/無効に適した色の QPalette フォームを返しdata()ます - 機能しません (文書化されていません)
  2. チェックQAbstractItemModel::flags()- 基本クラスはウィジェットについても認識していません (また、そうすべきではありません)
  3. ウィジェットからモデルにシグナルを接続して、ウィジェットの有効/無効状態が変化するたびに発信します。

番号 3 が最も可能性が高いようですが、少し複雑です。それだけの価値があるため、このモデルを使用して一度に 1 つの項目ビューのみを表示します。

希望のコード:

私がおそらくしなければならないこと(より良い解決策を望んでいます):

当然、これは 1 つのモデルの複数のビューでは機能しません。

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

qt - QTableViewで選択したアイテムがハイライトを失う

QTableView の extendedSelection に問題があります。問題は、列と行の周りに空白があり、この空白をクリックすると、選択したフィールドの強調表示が失われることです。アプリケーションの他の場所をクリックしても発生せず、空白のみです。また、選択モードを SingleSelection に設定すると、問題なく動作します。

ここに問題を説明する短いGIFがあり ます https://gyazo.com/8e4ae161aaff25a4afa1b588579ddd01

心から私を助けてくれるすべての人に感謝します

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

qt - QHeaderView から水平方向の境界線を削除する方法

私は水平方向のheaderViewを持つQTableViewオブジェクトを持っています(垂直方向は隠しています)。qtableView からグリッドを削除するように setShowGrid(false) を設定しましたが、QTableView とその水平ヘッダーの間の区切り線を削除するにはどうすればよいですか。私は試した:

しかし、成功しませんでした。ありがとうございました

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

c++ - Qt、QListViewモデル

リストビューモデルから選択した行の背景色を設定したい.別の行を選択すると、前の行の色が透明になります.ありがとう!

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

c++ - QTreeView - ドラッグ/ドロップ イベントが並べ替えか親間の移動かを判断する方法は?

andのサブクラスがQTreeViewありQAbstractItemModel、現在、ドラッグドロップを使用して、ある親インデックスから別の親インデックスにアイテムを移動しています。同じ親インデックス内の項目の順序を並べ替える機能も追加したいと考えています。ユーザーが他の 2 つのアイテムの間にアイテムをドロップした場合、ドロップがそれらのアイテムの中にあるのか、それともその間にあるのかを判断する必要があります。また、添付の図のように、他の多くのツリー タイプ ビュー (ほとんどのオペレーティング システムのファイル エクスプローラーなど) と同様に、何が起こるかを示唆するために、マウスを動かすと 2 つの項目の間に暗い線を引きたいと思います。

既存のアイテムにドラッグします:

にドラッグ

2 つの既存のアイテムの間に挿入します。

間にドラッグ

Qt はドラッグ/ドロップ動作のこの部分を自動化しますか、それともツリー アイテムのエッジに対するマウスの位置を手動で計算する必要がありますか? また、 の 2 つのアイテムの間に一時的な線を引くにはどうすればよいQTreeViewですか?

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

qt - アイテムが追加されたときにアイテムビューを一番下までスクロールする方法は?

で示されるモデルの最後に項目を追加する場合QAbstractItemView、ビューをデータの下部に保持して、最近追加された項目を表示したいと考えています。デフォルトの動作は、最後に表示されたアイテムの位置を保持することですが、一番下にいた場合はスクロールしません。

ユーザーが以前にビューを一番下までスクロールしたことがある場合、ビューを一番下に保つために必要な魔法は何でしょうか?

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

c++ - QAbstractItemView selectAll 遅い

QTableView約10kのエントリがあります。呼び出すQAbstractItemView::selectAllと、完了するまでに約5秒かかります。それ以外のパフォーマンスはOKです。

  1. 選考が遅いのはなぜ?
  2. それをスピードアップするために私にできることはありますか?