Advertisement
Guest User

Untitled

a guest
Apr 5th, 2020
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.47 KB | None | 0 0
  1. from PyQt5 import QtCore, QtGui, QtWidgets
  2.  
  3.  
  4. class Ui_Dialog(object):
  5.     def setupUi(self, Dialog):
  6.         Dialog.setObjectName('Dialog')
  7.         Dialog.resize(568, 404)
  8.         self.tabWidget = QtWidgets.QTabWidget(Dialog)
  9.         self.tabWidget.setGeometry(QtCore.QRect(10, 10, 541, 351))
  10.         self.tabWidget.setObjectName('tabWidget')
  11.         self.tab = QtWidgets.QWidget()
  12.         self.tab.setObjectName('tab')
  13.         self.tabWidget_2 = QtWidgets.QTabWidget(self.tab)
  14.         self.tabWidget_2.setGeometry(QtCore.QRect(10, 10, 511, 301))
  15.         self.tabWidget_2.setObjectName('tabWidget_2')
  16.         self.tab_3 = QtWidgets.QWidget()
  17.         self.tab_3.setObjectName('tab_3')
  18.         self.tableView = QtWidgets.QTableWidget(self.tab_3)
  19.         self.tableView.setGeometry(QtCore.QRect(10, 10, 481, 211))
  20.         self.tableView.setObjectName('tableView')
  21.         self.pushButton = QtWidgets.QPushButton(self.tab_3)
  22.         self.pushButton.setGeometry(QtCore.QRect(30, 240, 75, 23))
  23.         self.pushButton.setObjectName('pushButton')
  24.         self.pushButton_2 = QtWidgets.QPushButton(self.tab_3)
  25.         self.pushButton_2.setGeometry(QtCore.QRect(140, 240, 75, 23))
  26.         self.pushButton_2.setObjectName('pushButton_2')
  27.         self.tabWidget_2.addTab(self.tab_3, '')
  28.         self.tab_4 = QtWidgets.QWidget()
  29.         self.tab_4.setObjectName('tab_4')
  30.         self.tabWidget_2.addTab(self.tab_4, '')
  31.         self.tabWidget.addTab(self.tab, '')
  32.         self.tab_2 = QtWidgets.QWidget()
  33.         self.tab_2.setObjectName('tab_2')
  34.         self.tabWidget.addTab(self.tab_2, '')
  35.         self.retranslateUi(Dialog)
  36.         self.tabWidget.setCurrentIndex(0)
  37.         self.tabWidget_2.setCurrentIndex(0)
  38.         QtCore.QMetaObject.connectSlotsByName(Dialog)
  39.  
  40.     def loadCsv(self):
  41.         with open("data.csv", 'r', encoding='utf-8') as fileInput:
  42.             try:
  43.                 headers = next(fileInput).split(';')
  44.             except StopIteration:
  45.                 return
  46.             self.tableView.setColumnCount(len(headers))
  47.             self.tableView.setHorizontalHeaderLabels(headers)
  48.             for row in fileInput:
  49.                 items = row.split(';')
  50.                 self.tableView.setRowCount(self.tableView.rowCount() + 1)
  51.                 for i, field in enumerate(items):
  52.                     if field is not None:
  53.                         item = QtWidgets.QTableWidgetItem(str(field))
  54.                         self.tableView.setItem(self.tableView.rowCount() - 1, i, item)
  55.  
  56.     def writeCsv(self):
  57.         with open("data.csv", 'w', encoding='utf-8') as outfile:
  58.             headers = []
  59.             for columnNumber in range(self.tableView.columnCount()):
  60.                     head_item = self.tableView.horizontalHeaderItem(columnNumber).text()
  61.                     headers.append(head_item.strip('\n'))
  62.             outfile.write(';'.join(headers))
  63.             outfile.write('\n')
  64.  
  65.             for rowNumber in range(self.tableView.rowCount()):
  66.                     items = []
  67.                     for columnNumber in range(self.tableView.columnCount()):
  68.                         item = self.tableView.item(rowNumber, columnNumber).text()
  69.                         items.append(item.strip('\n'))
  70.  
  71.                     outfile.write(';'.join(items))
  72.                     outfile.write('\n')
  73.  
  74.     def on_pushButtonWrite_clicked(self):
  75.         self.writeCsv()
  76.  
  77.     def on_pushButtonLoad_clicked(self):
  78.         self.loadCsv()
  79.  
  80.     def retranslateUi(self, Dialog):
  81.         _translate = QtCore.QCoreApplication.translate
  82.         Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))
  83.         self.pushButton.setText(_translate('Dialog', 'Load'))
  84.         self.pushButton_2.setText(_translate('Dialog', 'Save'))
  85.         self.pushButton.clicked.connect(self.on_pushButtonLoad_clicked)
  86.         self.pushButton_2.clicked.connect(self.on_pushButtonWrite_clicked)
  87.         self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_3), _translate('Dialog', 'Tab 3'))
  88.         self.tabWidget_2.setTabText(self.tabWidget_2.indexOf(self.tab_4), _translate('Dialog', 'Tab 4'))
  89.         self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate('Dialog', 'Tab 1'))
  90.         self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate('Dialog', 'Tab 2'))
  91.  
  92.  
  93. if __name__ == '__main__':
  94.     import sys
  95.     app = QtWidgets.QApplication(sys.argv)
  96.     Dialog = QtWidgets.QDialog()
  97.     ui = Ui_Dialog()
  98.     ui.setupUi(Dialog)
  99.     Dialog.show()
  100.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement