問題タブ [qabstracttablemodel]

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

python - Qt と Python を使用して QTableView で QCompleter を使用する

QAbstractTableModel editable を作成する方法を読んでいますが、かなり簡単に見えます。

しかし、編集可能なセルを設定して QCompleter を使用するにはどうすればよいでしょうか? QTableViewにQLineEditウィジェットを使用するように指示する必要がありますか?これどうやってするの?


編集: うーん、QTableView.setItemDelegateForColumn()で何かがあると思いますが、デリゲートやその使用方法については何も知りません。


編集:RobbieEのソリューションを試してみましたが、そのようなものはありましたが、ポップアップコンボボックスのジオメトリが間違っていて、Enterを押すとPythonがクラッシュしました.

私の _completerSetupFunction は次のようになります。

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

c++ - 文字列が既に存在するかどうかを確認するQTableView

モデル/ビューを使用して文字列をTableViewに入れるプログラムがあります。私のモデルは QAbstractTableModel から拡張し、私のビューは QTableView から拡張します。私のモデルの名前でソートしていますsetData()

ここで、追加する文字列がテーブルに既に存在するかどうかを確認します。存在する場合は追加しません。QTableWidget私はそうすることができますit

しかし、QTableViewではわかりません。私は何をすべきか ?

次に、テーブルに常にチェックボックスがありますが、追加したことはありません。1を追加すると、チェックボックスが自動的に青色になります。

これは非常に奇妙に動作する methode へのリンクです: View::PushButtonClicked

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

python - ヘッダーを保持しながら、空の 2 次元配列で QAbstractTableModel を初期化する方法

小さな例で私の問題を示します。

TaskModel クラスには 2 行の__init__関数があることに注意してください。最初の行は [[" ", " ", " ", " "]] を __task のデフォルト データ セットとして指定し、2 行目は代わりに [[]] を指定します。

最初のものはうまくいきます:

ここに画像の説明を入力

一番下に不要な行があることを除いて。

2 番目の__init__関数は、不要な行を削除しようとして [[]] をデフォルトのデータセットとして使用しましたが、結果は悲惨なものになりました。

ここに画像の説明を入力

不要な一番下の行を削除しながら、ヘッダーとすべてを機能させるにはどうすればよいですか?

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

python - モデル内から QTableView インデックスまたは行を選択する方法

投稿されたコードは、singe を作成しますModel/Proxy QTableView。複数選択機能が有効になっています。

ここに画像の説明を入力

全部で4つのアイテムがあります。そのうちの 2 つは文字「A」を含みます。他の 2 つは、「アイテム」名に文字「B」が含まれています。

QPushButton押されたときにclicked()メソッドが呼び出されます。このメソッドが呼び出されると、最初に にProxy Model接続された を照会しQTableViewます。

次に、メソッドはproxyModel行の総数を返すように a に要求します。

QTabelView各行を反復する のモデル内の行数を知る。まず、行インデックスをクエリしています。

それを知ると、前のステップで照会された a (ここでは変数) とフラグを提供するメソッドを呼び出して、変数にindex格納されている値を要求することになります。self.itemsdata()QModelIndexindexRole

「toPyObject()」は、.data()メソッドから受け取ったデータを「通常の」Python 変数に変換するために使用されます。

最後に、受信した文字列に文字 " B " があるかどうかをチェックします。その場合、次を使用して QTableView 行を選択します。

今私が望むのは、filterAcceptsRow()可能であれば、プロキシモデルの範囲内から同じ選択機能を取得することです。

それが不可能な場合は、他の方法があるかどうか知りたいです...使用する必要がありますQItemSelectionModelか? ではどうやって?

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

python - Pythonを使用してQTableViewでチェックボックスを非表示にする方法は?

私はPythonだけでなくQtも初めてです。QTableViewテーブルビューのセルにチェックボックスを表示せずに使用したいのですが、デフォルトでそこに表示されるようです。これまでにわかったQt.ItemIsUserCheckableように、フラグを無効にするだけです。しかし、どうすればこれを行うことができますか? 私はフラグを使用しようとしました -この方法で派生モデルクラス内のQAbstractItemModel lの関数:QAbstractTableModel

Qt.ItemIsUserCheckableだから、私がしたことは、フラグを返さないだけです。これは、たとえばQt.ItemIsEditable、セルを編集可能にするかどうか (セルが返されない場合) の場合は問題なく動作しますが、ItemIsUserCheckableフラグを使用してこれを行うと、チェックボックスには影響しません。私の質問は次のとおりです。Pythonを使用してチェックボックスを削除するにはどうすればよいですか? 助けてください!

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

c++ - 基になるデータがテーブル ヘッダーを変更したことをモデル/ビューに通知する方法は?

TableModelに基づいて読み書きを構築しましたQAbstractTableModel。動作しますが、基になるデータが列と行のヘッダーを変更する可能性があり、それについてモデルとビューに通知する方法がわかりません (ビューがヘッダーを更新するように)。

(データ内の) 垂直ヘッダーを変更してから (ビュー -> モデルを介して) 列を挿入すると、ヘッダーが更新されます。beginInsertingX更新を強制するために特別な方法を使用していますか?