問題タブ [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 投票する
1 に答える
3238 参照

python - 項目ビューの空白領域をクリックすると選択が解除されます

でツリー構造を作成しましたがQTreeWidget、うまく機能します。しかし、それには問題があります。通常、ツリー構造ですべての選択を解除したい場合は、ツリー ウィジェットの空白の領域をクリックします。しかし、QTreeWidgetそれをサポートしていないようです (または方法がわかりません)。

サブクラス化などで問題を解決できますか? 空白領域のクリックを決定することが解決の鍵のようですが、シグナルも何も見つかりません。

0 投票する
5 に答える
8387 参照

qt - QAbstractItemView で可視 QModelIndex のリストを取得する方法

で現在表示されているアイテムのリストを取得する方法はありますQAbstractItemViewか? また、可能であれば、このリストの変更に関する通知を受け取ります。

Upd:ではなく、単純でない構造についてQAbstractItemView、またはそれを使用して正確に質問しています。QTreeViewQTableView

Upd2: チェックボックス付きのツリー ビュー モデルを実装しています。次の動作が必要です(チェック/チェック解除も同じ):

  • チェックボックスの1つがチェックされている場合 - すべての子をチェックする必要があります
  • すべての子チェックボックスがチェックされている場合、親チェックボックスもチェックする必要があります。親の親などについても同じです...

チェック状態は外部データ ソースによって監視/変更されるため、変更されたすべての子/親を更新するメカニズムが必要です。更新のためにdataChanged変更されたすべてのリストを作成するのは非常に広大であるため、シグナルは私にとって十分ではありません。QModelIndexまた、新しいデータはすべて から取得されるため、まったく必要ありませんQAbstractItemModel::data

すべてのアイテムを更新するための次の汚いハックを見つけましemit dataChanged( QModelIndex(), QModelIndex() );たが、無効なインデックスについては文書化されていません。

したがって、表示されているすべてのアイテムを新しいデータで強制的に再描画する方法が必要です。

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

qt - チェックボックス付きの QComboBox

チェックボックス付きの QComboBox を作成しています。マウスのクリック時にビューが折りたたまれないようにするにはどうすればよいですか? チェックボックスを設定できるようにしたいのですが、アイテムをクリックするたびに、QComboBox のドロップダウンが折りたたまれます。

注:現在、Qtソースをデバッグして回避策を探しています...

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

qt - QTreeView でアイテム作成の瞬間をキャッチして、カスタム ウィジェットを設定します

QAbstractItemModel から継承されたカスタム モデルと QAbstractItemView から継承されたカスタム ビューがあります。モデルは、ツリーとして編成されたデータのラップです。モデルが変更されると、変更についてビューに通知するために必要なシグナルが発行されます。ビューにはデフォルトの項目デリゲートがあります。

そして今、ビュー内のすべてのアイテムに対してカスタム ウィジェットを作成し、QAbstractItemView::setIndexWidget() で設定したいと考えています。ビュー内のすべてのアイテムの作成をキャッチして処理するにはどうすればよいですか?

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

qt - QTableView は、正確に 1 つの行/列に 1d データを表示します。二次元でどうやって見せるの?

1 次元の QStandardItemModel と QTableView インスタンスがあるとします。

これは最初の列のデータを示していますが、次のように 2 次元で表示したいと思います。

さらに、ユーザーはデータを選択できる必要があります。つまり、カスタム QStyledItemDelegate はおそらくこれを実装する方法ではありません。

したがって、カスタム QAbstractItemView を作成する必要がありますが、残念ながら私の意見ではドキュメントが少し不足しています。ヘルプ?

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

qt - QComboBox ドロップダウン項目マージン

QComboBoxドロップダウン項目の余白を付けてスタイルを設定したい。これは今のように見えます:

ここに画像の説明を入力

そして、私はこのようなものが欲しいです:

ここに画像の説明を入力

で試しました

しかし、うまくいきません。

これで私を助けてもらえますか?

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

c++ - QAbstractItemViewのサブクラスでウィジェットを表示するには?

データ モデルのコンテンツをカスタム表示したい、つまり、ウィジェットを使用してモデルのすべての行を表示したい。

QAbstractItemViewレイアウトを作成し、ビューポートに割り当ててから項目を追加することで、ウィジェットをサブクラス化し、表示しようとしました。適切なスロット(reset()rowsInserted)でウィジェット作成を実行しましたが、アイテムが含まれているレイアウトにもかかわらず、結局何も表示されません。

ウィジェットがビューポートに表示されるようにするにはどうすればよいですか? setIndexWidget()代わりに使用して設定する必要がありますか?

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

qt - フォーカスを失った後でも現在のインデックスが QAbstractItemView に表示されるように強制する

set toのQAbstractItemViewsayQListViewのインスタンスがあります。ウィジェットをアクティブにすると、現在のインデックスが強調表示されます。ただし、別のウィジェットにフォーカスすると、現在のインデックスが強調表示されなくなります。どのウィジェットにフォーカスがあるかに関係なく、現在のインデックスを常に強調表示する必要があります。selectionModeQt::NoSelectionQListView