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

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

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

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

Q&A

1回答

1631閲覧

PyQt5 ListViewにある値をすべて取得したい

goki_gottan

総合スコア168

Python 3.x

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

0グッド

0クリップ

投稿2022/06/22 12:55

PyQt5で作成したリストビューにある項目、値を取得したいです。

from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui,QtWidgets import sys class ListView(QtWidgets.QListView): def __init__(self, *args, **kwargs): super(ListView, self).__init__(*args, **kwargs) self.setDragEnabled(False) self.setAcceptDrops(True) self.setDropIndicatorShown(True) def clickCallback(self): QApplication.quit() app.exec_() return def clickCallback1(self): global model for row in range(self.Items): # index = model.index(row, 1) # item = model.data(index, QtCore.Qt.DisplayRole) print(row) return self.button1 = QPushButton('保存', self) self.button1.clicked.connect(clickCallback1) self.button1.move(200,300) self.button2 = QPushButton('終了', self) self.button2.clicked.connect(clickCallback) self.button2.move(100,300) def dragEnterEvent(self, event): if event.mimeData().hasUrls(): event.accept() else: super(ListView, self).dragEnterEvent(event) def dragMoveEvent(self, event): if event.mimeData().hasUrls(): event.accept() else: super(ListView, self).dragMoveEvent(event) q1=[] def dropEvent(self, event): global model if event.mimeData().hasUrls(): model = self.model() urls = event.mimeData().urls() for url in urls: filename = url.toLocalFile() print(filename) # q1.append(filename) item = QtGui.QStandardItem(filename) model.appendRow(item) print() event.accept() else: super(ListView, self).dropEvent(event) def main(): global app,ex,g1 g1=0 app = QtWidgets.QApplication(sys.argv) model = QtGui.QStandardItemModel() window = ListView() window.setGeometry(50, 100, 400, 400) window.setWindowFlags(QtCore.Qt.Window) window.setModel(model) window.show() print("gggg") sys.exit(app.exec_()) if __name__ == '__main__': main()

modelリストを見てもダメです。
ネットでヒットしないので、
リストビューにあるデータを保存ボタンを押すと、clickCallback1イベントで飛び、
リストビューにあるデータを取得するようにしたいです。

何卒、宜しくお願いいたします。

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

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

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

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

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

guest

回答1

0

python

1from PyQt5.QtGui import * 2from PyQt5.QtCore import * 3 4# テストデータの作成 5model = QStandardItemModel() 6for n in ('hoge', 'piyo', 'fuga'): 7 model.appendRow(QStandardItem(n)) 8 9# 行数分、表示データを取得して出力 10for i in range(model.rowCount()): 11 print(model.item(i).data(Qt.DisplayRole)) 12 13# 実行結果: 14# hoge 15# piyo 16# fuga

QStandardItemModel の基幹クラスである QAbstractItemModel についてもよく調べることをおすすめします。
ググって最初に出てきた以下の2つのサイトだけでも、参考になると思います。

https://qiita.com/tetsurom/items/acef221a06a2421e33d8
https://fereria.github.io/reincarnation_tech/11_PySide/02_Tips/08_custom_Model/

投稿2022/06/23 11:23

編集2022/06/23 11:25
katsuko

総合スコア3471

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問