def update(self): self.all_column = ['records_number', 'QSO_DATE', 'TIME_ON', 'BAND', 'CALL', 'MODE', 'RST_RCVD', 'RST_SENT', 'NAME', 'QTH', 'COMMENTS', 'TIME_OFF', 'eQSL_QSL_RCVD'] self.rules = diplom.get_rules(diplom, self.diplom_name + '.rules') self.score_final_label.setText("Total score need: " + str(self.rules[0]['score_complite'])) self.all_records = parse.getAllRecord(self.all_column, self.diplom_name+'.adi') records_count = len(self.all_records) column_count = len(self.all_column) self.table_widget.move(0, 0) fnt = self.table_widget.font() fnt.setPointSize(9) self.table_widget.setFont(fnt) self.table_widget.verticalHeader().hide() self.table_widget.setSortingEnabled(True) self.table_widget.setRowCount(records_count) self.table_widget.setColumnCount(column_count) self.table_widget.setHorizontalHeaderLabels( ["No", " Date ", " Time ", "Band", " Call ", "Mode", "RST r", "RST s", " Name ", " QTH ", " Comments ", " Time off ", " eQSL Rcvd "]) for record in range(records_count): for column in range(column_count): self.table_widget.setItem(record, column, QTableWidgetItem(self.all_records[record][self.all_column[column]])) self.table_widget.resizeRowsToContents() self.table_widget.resizeColumnsToContents() total_score = 0 for record in self.all_records: for i in range(len(self.rules)): if record['CALL'] == self.rules[i]['call'] and \ record['MODE'] == self.rules[i]['mode']: total_score += int(self.rules[i]['score']) self.score_total_label.setText("Total score: " + str(total_score))
def import_adi(self): fileimport = QFileDialog() options = QFileDialog.Options() options |= QFileDialog.DontUseNativeDialog #fileimport.setNameFilter("Adi file(*.adi)") #fileimport.setFilter() fname = fileimport.getOpenFileName(self, 'Import adi file', '/home', "*.adi", options=options)[0] if fname: print(fname) self.allCollumn = [ 'records_number', 'QSO_DATE', 'TIME_ON', 'BAND', 'CALL', 'FREQ', 'MODE', 'RST_RCVD', 'RST_SENT', 'NAME', 'QTH', 'COMMENTS', 'TIME_OFF', 'eQSL_QSL_RCVD', 'OPERATOR' ] try: allRecords = parse.getAllRecord(self.allCollumn, fname) main.Adi_file.record_dict_qso(self, allRecords) print(allRecords) self.logWindow.refresh_data() std.std.message(self, "Import complete!", "Ok") except Exception: print("Exception to import") std.std.message(self, "Can't import\nCheck encoding file", "STOP!")
def __init__(self, file, file_rules): self.file = file self.file_rules = file_rules.strip() self.allCollumn = ['records_number', 'QSO_DATE', 'TIME_ON', 'BAND', 'CALL', 'MODE', 'RST_RCVD', 'RST_SENT', 'NAME', 'QTH', 'COMMENTS', 'TIME_OFF', 'eQSL_QSL_RCVD'] self.allRecord = parse.getAllRecord(self.allCollumn, self.file) #print("diplom:", self.allRecord) self.decode_data = self.get_rules(self.file_rules)
def getQsoData(self): ''' Parse .adi file and generated the dictionary object for QSOs :return: qsoDataList - object [{... QSO 1 info...},{...QSO 2 info...}] ''' qsoDataList = parse.getAllRecord(self.allCollumn, self.diplomDataList[0]['name'] + ".adi", key="import") print("->-" * 10) print(qsoDataList) print("==" * 10) return qsoDataList