main.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from PyQt5.QtWidgets import QMainWindow, QApplication
  2. from PyQt5.QtGui import QPixmap
  3. from PyQt5 import QtGui, uic
  4. import charts
  5. from charts.funcs import *
  6. import math
  7. import sys
  8. import os
  9. from pathlib import Path
  10. import PyQt5
  11. os.environ["QT_QPA_PLATFORM_PLUGIN_PATH"] = os.fspath(
  12. Path(PyQt5.__file__).resolve().parent / "Qt5" / "plugins"
  13. )
  14. class Y:
  15. def __init__(self, e):
  16. self.e = e
  17. def gen(self, x):
  18. return eval(self.e.format(x=x))
  19. class App(QMainWindow):
  20. def __init__(self):
  21. super(App, self).__init__()
  22. # self.ui = main_ui.Ui_MainWindow()
  23. # self.ui.setupUi(self)
  24. self.folder = 'files'
  25. self.ui_folder = os.path.join(self.folder, 'ui')
  26. self.img_folder = os.path.join(self.folder, 'img')
  27. uic.loadUi(os.path.join(self.ui_folder, 'main.ui'), self)
  28. self.setWindowTitle('pycharts')
  29. self.btn_generate.clicked.connect(self.generate_image)
  30. self.log('Функции выражения:\ncube_root - квадратный корень\nmodule - модуль\n'
  31. '** - возведение в квадрат\n/ - деление\n* - умножение\n% - остаток от деления\n'
  32. 'Пример: cube_root(x - 2) + 3')
  33. self.filename = 'out.png'
  34. self.load_image(os.path.join(self.img_folder, 'file-not-found.jpg'))
  35. def log(self, text, end='\n'):
  36. self.text_out.setText(self.text_out.toPlainText()+str(text)+end)
  37. def generate_image(self):
  38. try:
  39. y = Y(self.lineedit_eval.text())
  40. step = float(self.lineedit_step.text())
  41. iters = int(self.lineedit_iters.text())
  42. size = int(self.lineedit_size.text())
  43. back = self.check_back.checkState()
  44. chart = charts.Chart(y.gen, step=step, iters=iters, name=self.filename, backward=back, rad=size)
  45. chart.generate()
  46. self.load_image(self.filename)
  47. self.text_out.clear()
  48. self.log(f'Успешно! Сохранено в "{self.filename}".')
  49. except Exception as e:
  50. self.log(str(e))
  51. def load_image(self, file_name):
  52. pixmap = QPixmap(file_name)
  53. self.image.setPixmap(pixmap)
  54. self.image.resize(191, 191)
  55. if __name__ == '__main__':
  56. app = QApplication(sys.argv)
  57. window = App()
  58. window.show()
  59. sys.exit(app.exec_())