Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PyQt5 import QtCore, QtGui, QtWidgets
- class Ui_Dialog(object):
- def setupUi(self, Dialog):
- Dialog.setObjectName('Dialog')
- Dialog.resize(568, 404)
- self.tabWidget = QtWidgets.QTabWidget(Dialog)
- self.tabWidget.setGeometry(QtCore.QRect(10, 10, 541, 351))
- self.tabWidget.setObjectName('tabWidget')
- self.tab = QtWidgets.QWidget()
- self.tab.setObjectName('tab')
- self.tabWidget_2 = QtWidgets.QTabWidget(self.tab)
- self.tabWidget_2.setGeometry(QtCore.QRect(10, 10, 511, 301))
- self.tabWidget_2.setObjectName('tabWidget_2')
- self.tab_3 = QtWidgets.QWidget()
- self.tab_3.setObjectName('tab_3')
- self.tableView = QtWidgets.QTableWidget(self.tab_3)
- self.tableView.setGeometry(QtCore.QRect(10, 10, 481, 211))
- self.tableView.setObjectName('tableView')
- self.pushButton = QtWidgets.QPushButton(self.tab_3)
- self.pushButton.setGeometry(QtCore.QRect(30, 240, 75, 23))
- self.pushButton.setObjectName('pushButton')
- self.pushButton_2 = QtWidgets.QPushButton(self.tab_3)
- self.pushButton_2.setGeometry(QtCore.QRect(140, 240, 75, 23))
- self.pushButton_2.setObjectName('pushButton_2')
- self.tabWidget_2.addTab(self.tab_3, '')
- self.tab_4 = QtWidgets.QWidget()
- self.tab_4.setObjectName('tab_4')
- self.tabWidget_2.addTab(self.tab_4, '')
- self.tabWidget.addTab(self.tab, '')
- self.tab_2 = QtWidgets.QWidget()
- self.tab_2.setObjectName('tab_2')
- self.tabWidget.addTab(self.tab_2, '')
- self.retranslateUi(Dialog)
- self.tabWidget.setCurrentIndex(0)
- self.tabWidget_2.setCurrentIndex(0)
- QtCore.QMetaObject.connectSlotsByName(Dialog)
- def loadCsv(self):
- with open("data.csv", 'r', encoding='utf-8') as fileInput:
- try:
- headers = next(fileInput).split(';')
- except StopIteration:
- return
- self.tableView.setColumnCount(len(headers))
- self.tableView.setHorizontalHeaderLabels(headers)
- for row in fileInput:
- items = row.split(';')
- self.tableView.setRowCount(self.tableView.rowCount() + 1)
- for i, field in enumerate(items):
- if field is not None:
- item = QtWidgets.QTableWidgetItem(str(field))
- self.tableView.setItem(self.tableView.rowCount() - 1, i, item)
- def writeCsv(self):
- with open("data.csv", 'w', encoding='utf-8') as outfile:
- headers = []
- for columnNumber in range(self.tableView.columnCount()):
- head_item = self.tableView.horizontalHeaderItem(columnNumber).text()
- headers.append(head_item.strip('\n'))
- outfile.write(';'.join(headers))
- outfile.write('\n')
- for rowNumber in range(self.tableView.rowCount()):
- items = []
- for columnNumber in range(self.tableView.columnCount()):
- item = self.tableView.item(rowNumber, columnNumber).text()
- items.append(item.strip('\n'))
- outfile.write(';'.join(items))
- outfile.write('\n')
- def on_pushButtonWrite_clicked(self):
- self.writeCsv()
- def on_pushButtonLoad_clicked(self):
- self.loadCsv()
- def retranslateUi(self, Dialog):
- _translate = QtCore.QCoreApplication.translate
- Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))
- self.pushButton.setText(_translate('Dialog', 'Load'))
- self.pushButton_2.setText(_translate('Dialog', 'Save'))
- self.pushButton.clicked.connect(self.on_pushButtonLoad_clicked)
- self.pushButton_2.clicked.connect(self.on_pushButtonWrite_clicked)
- self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), _translate('Dialog', 'Tab 3'))
- self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), _translate('Dialog', 'Tab 4'))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate('Dialog', 'Tab 1'))
- self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate('Dialog', 'Tab 2'))
- if __name__ == '__main__':
- import sys
- app = QtWidgets.QApplication(sys.argv)
- Dialog = QtWidgets.QDialog()
- ui = Ui_Dialog()
- ui.setupUi(Dialog)
- Dialog.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement