栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

pyqt-用csv数据填充QTableWidget

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pyqt-用csv数据填充QTableWidget

看起来您可以在

csv
此处使用该模块:

#!/usr/bin/env python#-*- coding:utf-8 -*-import csvimport sipsip.setapi('QString', 2)sip.setapi('QVariant', 2)from PyQt4 import QtGui, QtCoreclass MyWindow(QtGui.QWidget):    def __init__(self, fileName, parent=None):        super(MyWindow, self).__init__(parent)        self.fileName = fileName        self.model = QtGui.QStandardItemModel(self)        self.tableView = QtGui.QTableView(self)        self.tableView.setModel(self.model)        self.tableView.horizontalHeader().setStretchLastSection(True)        self.pushButtonLoad = QtGui.QPushButton(self)        self.pushButtonLoad.setText("Load Csv File!")        self.pushButtonLoad.clicked.connect(self.on_pushButtonLoad_clicked)        self.pushButtonWrite = QtGui.QPushButton(self)        self.pushButtonWrite.setText("Write Csv File!")        self.pushButtonWrite.clicked.connect(self.on_pushButtonWrite_clicked)        self.layoutVertical = QtGui.QVBoxLayout(self)        self.layoutVertical.addWidget(self.tableView)        self.layoutVertical.addWidget(self.pushButtonLoad)        self.layoutVertical.addWidget(self.pushButtonWrite)    def loadCsv(self, fileName):        with open(fileName, "rb") as fileInput: for row in csv.reader(fileInput):         items = [         QtGui.QStandardItem(field)         for field in row     ]     self.model.appendRow(items)    def writeCsv(self, fileName):        with open(fileName, "wb") as fileOutput: writer = csv.writer(fileOutput) for rowNumber in range(self.model.rowCount()):     fields = [         self.model.data(  self.model.index(rowNumber, columnNumber),  QtCore.Qt.DisplayRole         )         for columnNumber in range(self.model.columnCount())     ]     writer.writerow(fields)    @QtCore.pyqtSlot()    def on_pushButtonWrite_clicked(self):        self.writeCsv(self.fileName)    @QtCore.pyqtSlot()    def on_pushButtonLoad_clicked(self):        self.loadCsv(self.fileName)if __name__ == "__main__":    import sys    app = QtGui.QApplication(sys.argv)    app.setApplicationName('MyWindow')    main = MyWindow("/path/to/MyFile.csv")    main.show()    sys.exit(app.exec_())

PyQt5版本:

#!/usr/bin/env python#-*- coding:utf-8 -*-import csvfrom PyQt5 import QtCore, QtGui, QtWidgetsclass MyWindow(QtWidgets.QWidget):    def __init__(self, fileName, parent=None):        super(MyWindow, self).__init__(parent)        self.fileName = fileName        self.model = QtGui.QStandardItemModel(self)        self.tableView = QtWidgets.QTableView(self)        self.tableView.setModel(self.model)        self.tableView.horizontalHeader().setStretchLastSection(True)        self.pushButtonLoad = QtWidgets.QPushButton(self)        self.pushButtonLoad.setText("Load Csv File!")        self.pushButtonLoad.clicked.connect(self.on_pushButtonLoad_clicked)        self.pushButtonWrite = QtWidgets.QPushButton(self)        self.pushButtonWrite.setText("Write Csv File!")        self.pushButtonWrite.clicked.connect(self.on_pushButtonWrite_clicked)        self.layoutVertical = QtWidgets.QVBoxLayout(self)        self.layoutVertical.addWidget(self.tableView)        self.layoutVertical.addWidget(self.pushButtonLoad)        self.layoutVertical.addWidget(self.pushButtonWrite)    def loadCsv(self, fileName):        with open(fileName, "r") as fileInput: for row in csv.reader(fileInput):         items = [         QtGui.QStandardItem(field)         for field in row     ]     self.model.appendRow(items)    def writeCsv(self, fileName):        with open(fileName, "w") as fileOutput: writer = csv.writer(fileOutput) for rowNumber in range(self.model.rowCount()):     fields = [         self.model.data(  self.model.index(rowNumber, columnNumber),  QtCore.Qt.DisplayRole         )         for columnNumber in range(self.model.columnCount())     ]     writer.writerow(fields)    @QtCore.pyqtSlot()    def on_pushButtonWrite_clicked(self):        self.writeCsv(self.fileName)    @QtCore.pyqtSlot()    def on_pushButtonLoad_clicked(self):        self.loadCsv(self.fileName)if __name__ == "__main__":    import sys    app = QtWidgets.QApplication(sys.argv)    app.setApplicationName('MyWindow')    main = MyWindow("data.csv")    main.show()    sys.exit(app.exec_())


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638036.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号