Get the App
SLTechnology News&Howtos  ›  Servers  › 

Pyqt5_ site Administration _ stcd_windows

Shulou Source: shulou.com Published: 2022-06-02 09:48:52 09月24日 Update

From PyQt5.QtWidgets import (QWidget,QTableWidget,QHBoxLayout,QVBoxLayout,QGridLayout,QGroupBox,QLineEdit,QLabel,QPushButton, QHeaderView,QTableWidgetItem,QMessageBox) import os,re# defines the site information window class stcd_window (QWidget): def _ _ init__ (self): super (). _ init__ () self.stcd_tablewidget = QTableWidget (0 3) self.stcd_stcd = QLineEdit () self.stcd_rtu = QLineEdit () self.stcd_name = QLineEdit () self.list_stcd = [] self.stcd_pik_path ='. / / DATA//STCDinfo.pik' self.stcd_txt_path ='. / / DATA// site information. Txt 'self.table_clicked_old =-1 # Line number self.initUI () def initUI (self): # initialize window component self.stcd_tablewidget.setHorizontalHeaderLabels (['site code') 'RTU coding' 'site name']) self.stcd_tablewidget.setEditTriggers (QTableWidget.NoEditTriggers) table_group = QGroupBox ('site') table_vbox = QVBoxLayout () table_vbox.addWidget (self.stcd_tablewidget) table_group.setLayout (table_vbox) stcd_group = QGroupBox ('site Information configuration') stcd_grid = QGridLayout () stcd_label = QLabel ('site code:') rtu_label = QLabel ('RTU code:') name_label = QLabel ('site name:') delete_button = QPushButton ('delete') input_button = QPushButton ('save') delete_button.clicked.connect (self.delete_stcd_info) input_button.clicked.connect (self.save_stcd_info) self.stcd_ tablewidget. CellClicked [int Int] .connect (self.cell_clicked) stcd_grid.addWidget (stcd_label, 0,0) stcd_grid.addWidget (self.stcd_stcd, 0,1) stcd_grid.addWidget (rtu_label, 1,0) stcd_grid.addWidget (self.stcd_rtu, 1,1) stcd_grid.addWidget (name_label, 2,0) stcd_grid.addWidget (self.stcd_name, 2 1) button_grid = QGridLayout () button_grid.addWidget (delete_button, 0,0) button_grid.addWidget (input_button, 0) 1) stcd_vbox = QVBoxLayout () stcd_vbox.addLayout (stcd_grid) stcd_vbox.addLayout (button_grid) stcd_group.setLayout (stcd_vbox) hbox = QHBoxLayout () hbox.addWidget (table_group) hbox.addWidget (stcd_group) self.setLayout (hbox) self.get_list_stcd () self.initTable () # initialize site information form def get_list_stcd (self): try: if not os.path.exists (self.stcd_txt_path): with open (self.stcd_txt_path) 'w') as stcd_txt_file: stcd_txt_file.write ('site code RTU site Site name\ n') return with open (self.stcd_txt_path 'r') as stcd_txt_file: stcd_txt_file.readline () self.list_stcd.clear () txt_line = stcd_txt_file.readline () while txt_line: txt_line = txt_line.strip ('\ n') txt_line = txt_line.replace (' X = re.findall (txt_line) if len (x) > 1: txt_line = txt_line.replace ('-','-') line = txt_line.strip () .split (' ', 2) if not line [0] .strip () ='': self.list_stcd.append ([line [0] .strip (), line [1] .strip () Line [2] .strip () txt_line = stcd_txt_file.readline () try: os.remove (self.stcd_txt_path) except Exception as error1: return with open (self.stcd_txt_path,'a') as stcd_txt_file: stcd_txt_file.write ('site Code RTU site; site name\ n') for line in self.list_stcd: stcd_txt_file.write (line [0] +';'+ line [1] +') '+ line [2] +'\ n') except Exception as error: return # initialization list def initTable (self): X = 0 for line in self.list_stcd: self.stcd_tablewidget.insertRow (x) self.stcd_tablewidget.setItem (x, 0, QTableWidgetItem (line [0])) self.stcd_tablewidget.setItem (x, 1 QTableWidgetItem (line [1]) self.stcd_tablewidget.setItem (x, 2, QTableWidgetItem (line [2])) x = x + 1 # form is selected def cell_clicked (self, x, y): if self.table_clicked_old = = x: return self.table_clicked_old = x self.stcd_stcd.setText (self.stcd_tablewidget.item (x) 0) .text () self.stcd_rtu.setText (self.stcd_tablewidget.item (x, 1) .text () self.stcd_name.setText (self.stcd_tablewidget.item (x) 2) .text () # Save button def save_stcd_info (self): if self.stcd_stcd.text (). Strip () =''or self.stcd_rtu.text (). Strip () =''or self.stcd_name.text (). Strip () ='': QMessageBox.warning (self,' Note', 'site Encoding, RTU Encoding, site name\ ncannot be empty.') Return x = 0 while x

< len(self.list_stcd): if self.stcd_stcd.text().strip() == self.list_stcd[x][0]: flag = 0 if self.stcd_rtu.text().strip() != self.list_stcd[x][1]: del self.list_stcd[x][1] self.list_stcd[x].insert(1,self.stcd_rtu.text().strip()) self.stcd_tablewidget.setItem(x,1,QTableWidgetItem(self.stcd_rtu.text().strip())) flag = 1 if self.stcd_name.text().strip() != self.list_stcd[x][2]: del self.list_stcd[x][2] self.list_stcd[x].insert(2, self.stcd_name.text().strip()) self.stcd_tablewidget.setItem(x, 2, QTableWidgetItem(self.stcd_name.text().strip())) flag = 2 if flag >

0: os.remove (self.stcd_txt_path) with open (self.stcd_txt_path,'a') as r_file: r_file.write ('site code; RTU site Site name: for line in self.list_stcd: r_file.write (line [0] +';'+ line [1] +') '+ line [2] +'\ n') r_file.flush () return x = x + 1 self.stcd_tablewidget.insertRow (len (self.list_stcd)) self.stcd_tablewidget.setItem (len (self.list_stcd), 0, QTableWidgetItem (self.stcd_stcd.text (). Strip ()) self.stcd_tablewidget.setItem (len (self.list_stcd)) 1, QTableWidgetItem (self.stcd_rtu.text (). Strip ()) self.stcd_tablewidget.setItem (len (self.list_stcd), 2, QTableWidgetItem (self.stcd_name.text (). Strip ()) self.list_stcd.append ([self.stcd_stcd.text (). Strip (), self.stcd_rtu.text (). Strip (), self.stcd_name.text (). Strip ()]) with open (self.stcd_txt_path 'a') as file: file.write (self.stcd_stcd.text (). Strip () +' '+ self.stcd_rtu.text () .strip () +';'+ self.stcd_name.text () .strip () +'\ n') self.table_clicked_old =-1 # delete button def delete_stcd_info (self): if self.table_clicked_old = =-1: QMessageBox.warning (self,' prompt', 'Please select the site to delete before deleting.') Return self.stcd_tablewidget.removeRow (self.table_clicked_old) del self.list_ STCD [self.table _ clicked_old] os.remove (self.stcd_txt_path) with open (self.stcd_txt_path,'a') as de_file: de_file.write ('site code; RTU site Site name: for line in self.list_stcd: de_file.write (line [0] +';'+ line [1] +') '+ line [2] +'\ n') de_file.flush () self.stcd_stcd.setText ('') self.stcd_rtu.setText ('') self.stcd_name.setText ('') self.table_clicked_old =-1

Tags: Site code name information button selection component form table line number prompt configuration site management management Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Apple Microsoft OPPO Reno Shulou Tech Info NVidia