Глава 5. Разработка графического интерфейса
import sys import work_file import pyqtgraph import pyqtgraph.exporters from PyQt5 import QtCore, QtGui, QtWidgets from forma import Ui_Dialog class MainWindow(QtWidgets.QMainWindow): # создаем свой класс окна, def __init__(self, parent=None): # Нужно для доступа к переменным, методам и т.д. # в файле forma.py QtWidgets.QWidget.__init__(self, parent) #инициализируем класс self.ui = Ui_Dialog() self.ui.setupUi(self) #передаем ему настройки self.ui.input_file.clicked.connect(self.MyFunction) self.ui.on_grid.clicked.connect(self.on_grid) self.ui.off_grid.clicked.connect(self.off_grid) self.ui.clear_box.clicked.connect(self.clear) self.ui.open_file.clicked.connect(self.open_file) self.ui.open_file_2.clicked.connect(self.open_file2) # очистить окно def clear(self): self.ui.graphicsView.clear() # открываем файлы с данными def open_file(self): self.ui.lineEdit.setText(QtGui.QFileDialog.getOpenFileName(self, '*', '. /', 'TXT Files ( *.txt)')[0]) def open_file2(self): self.ui.lineEdit_2.setText(QtGui.QFileDialog.getOpenFileName(self, '*', '. /', 'TXT Files ( *.txt)')[0]) # отключаем и включаем сетку def on_grid(self): self.ui.graphicsView.showGrid(True, True) def off_grid(self): self.ui.graphicsView.showGrid(False, False) def MyFunction(self): # обработчик исключений (для проверки првильного ввода адреса файла) try: if self.ui.lineEdit.text() != '': self.text = self.ui.lineEdit.text() #считывает имя файла f = open(self.text) line = f.read() x_1, y_1 = work_file.output_values(line) pen1 = pyqtgraph.mkPen(color='r',width = 3, style=QtCore.Qt.DashLine) #задаем кисть self.clear() self.ui.graphicsView.plot(x_1, y_1, pen=pen1) # вывод графика self.ui.error_1.clear() except IOError : self.ui.error_1.setText('Файл не найден') # поправка на аппаратную функцию if self.ui.ap_func.isChecked() == True: # проверка чекбокса f0 = open('hardware.txt') line0 = f0.read() h_x, h_y = work_file.output_values(line0) for i in range(len(h_x)): for j in range(len(h_x)): if x_1[i] == h_x[j]: y_1[i] = y_1[i] * h_y[j] pen1 = pyqtgraph.mkPen(color='b',width = 3, style=QtCore.Qt.DashLine) # задаем кисть self.clear() self.ui.graphicsView.plot(x_1, y_1, pen=pen1) # вывод графика try: if self.ui.lineEdit_2.text() != '': self.text2 = self.ui.lineEdit_2.text()# считывает имя файла f2 = open(self.text2) line2 = f2.read() x_2, y_2 = work_file.output_values(line2) pen2 = pyqtgraph.mkPen(color='w', width=3, style=QtCore.Qt.DashLine) self.ui.graphicsView.plot(x_2, y_2, pen=pen2) # вывод графика self.ui.error_1.clear() except IOError : self.ui.error_2.setText('Файл не найден') if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication передаем аргументы командной строки window = MainWindow() # Создаём объект класса ExampleApp window.show() #показываем окно sys.exit(app.exec_()) # запускаем приложение
Если вы заметили неточность, ошибку или хотите поделиться своими мыслями по поводу статьи - мы рады обратной связи. Давайте вместе сделаем ресурс лучше!