問題タブ [qmodelindex]

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 に答える
3807 参照

c++ - QTreeViewでQModelIndexの(視覚的な)位置を見つける簡単な方法

のノードの物理的な位置を計算することに興味があり、QTreeViewこれを行う方法を見つけることができません(自分で計算する以外は、の堅牢性を考えると面倒でエラーが発生しやすくなりますQTreeView)。

に関連付けられたデータの描画位置を見つける標準的な方法はありますか(位置をにマップするQModelIndex方法に似ています)?indexAt()QModelIndex

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

qt - QTableView: QModelIndex を正しく作成するにはどうすればよいですか?

次のような特定のセルで編集モードに入ろうとしています:

私のモデルは次のようなインデックスを作成します:

デバッグ出力は次のようになります。

setCurrentIndex()機能していないように見えるため、インデックスが何らかの形で無効であると確信しています。

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

qt - 単一のQModelIndexの更新を停止します

時間の経過とともに変化するデータを含むQTreeViewがあり、dataChangedシグナルがQAbstractItemModelで毎秒発行されます。QTreeViewのアイテムも編集できますが、特定のアイテムのエディターを開くと、編集中にエディター文字列が更新されるため、非常に煩わしいです。エディターが新しい値で更新されないようにする方法はありますか?

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

c++ - QSqlTableModelを使用して、特定の複合主キーのQModelIndexを見つけるにはどうすればよいですか?

私はこのテーブルを持っています:

QModelIndexたとえば、特定の複合主キーを見つけるにはどうすればよいですか。

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

c++ - データベースの検索に使用される別の QSqlQuery から QModelIndex を取得する方法 (見つかったアイテムを選択するために必要)

QSqlQueryModel を扱うときに問題があります。データベースでいくつかのアイテムを検索し、QModelIndex を必要とする QItemSelectionModel を使用して QTableView でそれらを選択したいと考えています。

私が理解していないのは、モデル/ビュー アーキテクチャに対応する QModelIndex を取得するために検索する方法です。ビューに表示されるアイテムが台無しになるため、モデル自体を使用することはできません。したがって、QSqlQuery または追加の QSqlQueryModel がオプションになる可能性がありますが、結果インデックス (.at()?) からモデル/ビュー システムに適合する QModelIndex に変換するにはどうすればよいでしょうか...

前もって感謝します!

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

qt - 元の QSqlQueryModel を変更せずに、SELECT クエリ (QSqlQuery) で見つかった行の QModelIndex を取得する方法

すでに質問しましたが、誤解されていたので、問題を正確に説明しようとします。

QSqlQueryModelSQLite データベースからのデータを表示するために を使用していますQTableView

ここで、「検索/検索/置換」ダイアログを実装したいので、追加で作成された でデータベースを検索しQSqlQuery、レコードを見つけたとしましょう。

QSqlQueryでは、extra のこの見つかったレコードからモデル/ビュー アーキテクチャに移動するにはどうすればよいでしょうか?

問題は、見つかったレコードを強調表示したいのでQItemSelectionModel、特定の をロードする必要があることQModelIndexです。

しかし、これを行う方法がわかりません。おそらく私の計画は不可能であり、データベース モデルでテキストを検索し、QTableView.

QSqlQueryQSqlQueryModel、のドキュメントは既に知っているQModelIndexので、これらのページだけを参照しないでください。あまり役に立ちません。

ありがとう!

PS: まだ回答されていない関連する質問もあります。

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

qt - QModelIndex を新しい行に関連付ける方法は?

QAbstractListModelデータを処理するために絶対に必要なポインターをモデル インデックスに含む を作成しました。次のようにデータを追加します。

への引数が、新しい行の実際のモデル インデックスではなく、新しい行のbeginInsertRowsモデル インデックスを要求していることに気付いたのは、後になってからです。

したがって、現時点では、Qt はQModelIndex、この特定の行に関連付ける を提供する方法を私に与えていません。この新しい行に独自のモデル インデックスを作成するにはどうすればよいですか?

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

qt - QModelIndexクロススレッドキュー接続を渡す

これは関数シグネチャです。そして私はそれを呼んでいますQtConcurrent::run

アーキテクチャは非常に単純です。クエリによって返される予想行数は既知です。クエリは並行して実行され、各レコードフェッチで行が追加され table: WMI::WMITable* WMI::WMITableます。これはSimple QObject TableDataStructureです。それは放出rowsAboutToBeInserted(QModelIndex, int, int)rowsInserted(QModelIndex, int, int)、行を追加すると。

一方ProgressIndicator、メインスレッドでインスタンス化され、tableはそのに渡されますctor。からまでの予想される行の総数を取得しWMI::WMIQuery::wmiquery()ますProgressIndicator::setRecordCount(quint64 count)rowAdded()それはいくつかの簡単な数学をすることによって100から進歩を放出するスロットを持っています。そのctorで接続します

私が思うこと。別のWMI::WMIQuery::wmiquery()スレッド(上QThreadPool)で実行しているため、この接続はクロススレッドキュー接続です。私は正しいですか?

実行時に次のエラーが発生します

QObject :: connect:タイプ'QModelIndex'の引数をキューに入れることができません
('QModelIndex'がqRegisterMetaType()を使用して登録されていることを確認してください)。

私は何をすべきか ?私SLOT(rowAdded())は3つの引数を必要としないので、次のSIGNAL(rowsInserted(QModelIndex,int,int))ような別の信号を作成rowInserted()し、放出するたびにそれを放出し、代わりにこれをこの結合にrowsInserted(QModelIndex,int,int)使用する必要がありますSIGNAL

rowsInserted(QModelIndex,int,int)テーブルのデータ構造のように、なぜモデルのような信号を使用しているのかと疑問に思われるかもしれません。このテーブルに接続されているモデルもあります。これも行ごとに更新されます。しかし、私はそれがこの点で重要ではないと思います。

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

c++ - QTreeViewでQModelIndexの表示されている行を見つける簡単な方法

特定の「視覚的な行」を取得する方法はありQModelIndexますか?

一部のノードが展開されているツリーと展開されていないツリーがあるとします。たとえば、部分的に展開されたツリーを取得し、最後のアイテムをクリックします。

私がクリックしたアイテムがプログラムで5行目にあることを知りたいです。QModelIndexここに階層があるため、の行と列は役に立ちません。

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

python - QModelIndexからデータを取得すると、無限のループが発生します

__getitem__とを実装するクラスで問題が発生してい__setitem__ます。

このクラスのインスタンスは、のデータバックエンドですQAbstractListModel。モデルの外部からオブジェクトにアクセスできるようになるとdata(index)、モデルの実装でこれらのインスタンスを返します。role==Qt.UserRole

これを実行したいシナリオの1つはQListView、データを表示するためにモデルを使用するで、ユーザーがアイテムをクリックしたときです。__getattr__問題は、ユーザーがクリックしたインデックスからデータを取得しようとするとすぐに、プログラムが無限ループ(内)で実行を開始することです。

以下は、説明されている動作を再現する完全なコピー/貼り付け可能なコードフラグメントです。index.data(Qt.UserRole)プログラムはの行でループしますtestfunc

どこかでポイントが欠落していますか、それともPySideのバグに遭遇しましたか?