質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1115閲覧

QModelIndex に値を入れる PyQt5 、QTableView

goki_gottan

総合スコア168

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/08/09 00:37

ModelView(TableView)への値書き込みについて、悩んでおります。
カレントインデックスだけに値を入れたい場合は以下で解決ですが、

current_index = self.view.currentIndex() current_index.model().setData(current_index, 〇)

for文を使用して、複数セルに値を書き込みたい場合、たとえば、カレントインデックスから列1つずつに値を入れる場合、

for b in range(len(i5)): # self.createIndex(row, column, childItem) print(current_index) # index=model.index(row+b, column+a) # self.setItem(row,column+b,QTableWidgetItem(i5[b])) # self.setItem(row,column+b,i5[b])   current_index.model().setData(row,column+b, i5[b])

インデックスの内部を変更して、rowとcolumnで修正したいのですが、
どのようにすれば良いでしょうか。

createIndexで、indexを自ら作成して、引数に入れればよいのかなと思いますが、
indexの書き方が分かりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問には「実行可能な最小限のコード」とエラーメッセージを掲載してください。
質問のコードでは、エラー内容次第では掲載範囲外の問題ということも考えられます。

確認: 質問に掲載のコードはどのクラスを継承していますか?
setItem メソッドがあるのは QTableWidget クラスです。QTableView クラスではありません。

ModelView が正しく使われている場合は、以下のコードで動くはずです。

python

1index = model.index(row, column) 2model.setData(index, value, role)

但し、setData の実装はモデル依存な点には注意してください。
読み込み専用のモデルでは、期待するような挙動は得られないかもしれません。

投稿2022/08/09 03:59

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問