環境
Windows10
Python3
PySide2
Qt Designesから作成して
Pyshonファイルに変換し、別途 main.pyファイルを以下のように作成し
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import csv import sys #from PySide2.QtGui import * from graph_vmaker import Ui_Dialog from PySide2 import QtWidgets ,QtGui, QtCore #QPixmap class MyForm(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle("graph_maker") self.ui = Ui_Dialog() self.ui.setupUi(self) self.connect_signal_slot() def callback_lineEdit_editingFinished(self): print ("callback_lineEdit_editingFinished") def callback_pushButton_clicked(self): file, filter_ = QtWidgets.QFileDialog.getOpenFileName( self, "Open CSV", "C:/Users/User/Documents/Graph view maker/csv", "CSV (*.csv)" ) if file: self.ui.lineEdit.setText(file) csv_list = self.load_csv(file) #def callback_tableView__clicked(self): #print ("callback_tableView__clicked") def callback_pushButton_2_clicked(self): print("callback_pushButton_2_clicked") def callback_pushButton_3_clicked(self): print ("callback_pushButton_3_clicked") def callback_graphicsView__clicked(self): print ("callback_graphicsView__clicked") def connect_signal_slot(self): self.ui.lineEdit.editingFinished.connect(self.callback_lineEdit_editingFinished) self.ui.pushButton.clicked.connect(self.callback_pushButton_clicked) #self.ui.tableView.clicked.connect(self.callback_tableView_clicked) self.ui.tableView = QtGui.QTableView(self) self.ui.tableView.setModel(self.model) self.ui.tableView.horizontalHeader().setStretchLastSection(True) self.ui.pushButton_2.clicked.connect(self.callback_pushButton_2_clicked) self.ui.pushButton_3.clicked.connect(self.callback_pushButton_3_clicked) #self.ui.graphicsView.clicked.connect(self.callback_graphicsView_clicked) self.layoutVertical.addWidget(self.tableView) def load_csv(self, file): csv_list =[] with open(file, "r", encoding="utf_8") as f: reader = csv.reader(f) for rowNuber in range(self.model.rowCount()): items = [ self.model.data( self.model.index(), QtCore.Qt.DisplayRole ) ] #return(csv_list) if __name__ == '__main__': app = QApplication(sys.argv) win = MyForm() win.show() sys.exit(app.exec_())
CSVファイルをLideEditで読み込んで、その内容をtableViewに表示させたいのですが、
やり方が分かりません。
当初は
python - pyqt-csvデータをQTableWidgetに取り込む
を参考にしたが
AttributeError: module 'PySide2.QtGui' has no attribute 'QTableView'
になり、いろいろ調べました。
QTableViewとModelの作り方
これを読むとモデルクラスやデータクラスを書かないといけない。
単にCSVファイルを読み込んでテーブルに表示させるだけなおですが、あらかじめデータ構造を指定するのでしょうか。
さらに調べたら、以下のようなヒントになりそうな情報があったのです。
pyqt - populating QTableWidget with csv data
これを読むと、テーブルに表示されたデーターをcsvファイルにエクスポートする機能もあるようなのですが・・。
あなたの回答
tips
プレビュー