Глава 5. Разработка графического интерфейса

Листинг graphic.py



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_())  # запускаем приложение

Если вы заметили неточность, ошибку или хотите поделиться своими мыслями по поводу статьи - мы рады обратной связи. Давайте вместе сделаем ресурс лучше!

От кого:
Ваш комментарий будет виден всем пользователям