/
zolnikov
/
database_analyzer
Обзор
Документация
Войти
/
zolnikov
/
database_analyzer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
window/main_window.py
137 строк
5 KB
Jaman
версия 01.06.26
01 июл 2026, 21:24
01 июл 2026, 21:24
93f1e01
Код
Авторство
О чём код?
from PySide6 import QtWidgets from PySide6.QtCore import QDateTime from PySide6.QtGui import Qt, QMovie from PySide6.QtWidgets import QHeaderView import common from common import ColorMessages, Icons from qt import window_main class MainWindow(QtWidgets.QMainWindow, window_main.Ui_MainWindow): def __init__(self, manager, app): self.app = app self.manager = manager super(MainWindow, self).__init__() self.setupUi(self) self.setWindowTitle('Анализ базы данных АППС/МПАБ-М') self.tableWidget.horizontalHeader().setStretchLastSection(True) self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents) self.tableWidget.setAlternatingRowColors(True) self.tableWidget.setSortingEnabled(True) self.tableWidget_2.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents) self.tableWidget_2.setAlternatingRowColors(True) self.tableWidget_2.setSortingEnabled(True) self.dateTimeEdit.setDisplayFormat('yyyy-MM-dd HH:mm:ss') self.dateTimeEdit.setCalendarPopup(True) self.dateTimeEdit.setDateTime(QDateTime.currentDateTime()) self.dateTimeEdit_2.setDisplayFormat('yyyy-MM-dd HH:mm:ss') self.dateTimeEdit_2.setCalendarPopup(True) self.dateTimeEdit_2.setDateTime(QDateTime.currentDateTime().addMonths(-1)) self.textEdit.setReadOnly(True) self.move = QMovie(Icons.loading_screen) self.label_3.setScaledContents(True) self.label_3.setText('') self.label_6.setText('') self.label_7.setText(f'Версия {common.version_po}') self.pushButton.clicked.connect(self.click_select_files) self.pushButton_2.clicked.connect(self.click_analysis) self.tableWidget_2.cellDoubleClicked.connect(self.on_cell_double_clicked) self.pushButton_3.clicked.connect(self.click_show_graph) self.pushButton_4.clicked.connect(self.click_open_types) def click_select_files(self): self.manager.select_files() def add_files_in_tab(self, file_names): for file_name in file_names: row_position = self.tableWidget.rowCount() self.tableWidget.insertRow(row_position) item = self.create_table_item(f'{file_name}') self.tableWidget.setItem(row_position, 0, item) def get_files_from_tab(self): return [self.tableWidget.item(row, 0).text() for row in range(self.tableWidget.rowCount())] @property def start_time_analysis(self): return self.dateTimeEdit_2.dateTime().toString('yyyy-MM-dd hh:mm:ss') @property def end_time_analysis(self): return self.dateTimeEdit.dateTime().toString('yyyy-MM-dd hh:mm:ss') def click_analysis(self): self.manager.start_analysis() def add_static_in_table(self, data: dict): for key, value in data.items(): self.textEdit.append(f'{key}: {value}') def add_device_in_table(self, name_device, info, alert, warning, error, id_type=None): row_position = self.tableWidget_2.rowCount() self.tableWidget_2.insertRow(row_position) item = self.create_table_item(f'{name_device}') self.tableWidget_2.setItem(row_position, 0, item) item = self.create_table_item(f'{id_type}') self.tableWidget_2.setItem(row_position, 1, item) item = self.create_table_item(f'{info}') self.tableWidget_2.setItem(row_position, 2, item) for column, msg, color in zip([3, 4, 5], [alert, warning, error], [ColorMessages.alert, ColorMessages.warning, ColorMessages.error]): if int(msg) == 0: color = None item = self.create_table_item(f'{msg}', color) self.tableWidget_2.setItem(row_position, column, item) def create_table_item(self, msg, color=None): item = QtWidgets.QTableWidgetItem(f'{msg}') item.setTextAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter) item.setFlags(Qt.ItemFlag.ItemIsSelectable | Qt.ItemFlag.ItemIsEnabled | ~Qt.ItemFlag.ItemIsEditable) if color: item.setBackground(color) return item def on_cell_double_clicked(self, row, column): name_device = self.tableWidget_2.item(row, 0).text() self.manager.selected_device(name_device, column-2) def click_show_graph(self): self.manager.show_graphics() def clear_select_files(self): self.tableWidget.clearContents() self.tableWidget.setRowCount(0) self.label_4.setText(f'') self.label_5.setText(f'') def clear_analysis_data(self): self.textEdit.clear() self.tableWidget_2.clearContents() self.tableWidget_2.setRowCount(0) def play_loading_screen(self, value): if value: self.label_3.setMovie(self.move) self.move.start() self.label_6.setText('Загрузка...') else: self.move.stop() self.label_3.clear() self.label_6.clear() def set_range_time_files(self, start, end): self.label_4.setText(f'с {start}') self.label_5.setText(f'по {end}') def click_open_types(self): self.manager.open_types() def closeEvent(self, event): self.manager.close_depend_window() event.accept()