17 Commits

Author SHA1 Message Date
github-actions[bot]
7f01052aa5 chore(main): release 0.3.6 (#40)
🤖 I have created a release *beep* *boop*
---


## [0.3.6](https://github.com/shizand/statapp/compare/v0.3.5...v0.3.6)
(2023-09-29)


### Исправления

* добавляет иконку приложения
([#39](https://github.com/shizand/statapp/issues/39))
([d3cd358](d3cd3589a7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-29 12:23:53 +03:00
d3cd3589a7 fix: добавляет иконку приложения (#39)
Closes #38.

---------

Co-authored-by: MisterMLiL <eugenelazurenko@gmail.com>
2023-09-29 12:13:24 +03:00
github-actions[bot]
d71bd9843f chore(main): release 0.3.5 (#37)
🤖 I have created a release *beep* *boop*
---


## [0.3.5](https://github.com/shizand/statapp/compare/v0.3.4...v0.3.5)
(2023-09-28)


### Исправления

* исправлен выбор файла для загрузки (Linux)
([c1809a0](c1809a0bc7))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Maxim Slipenko <no-reply@maxim.slipenko.com>
2023-09-28 23:01:25 +03:00
c1809a0bc7 fix: исправлена выбор файла для загрузки (Linux) 2023-09-28 22:55:59 +03:00
github-actions[bot]
83d9faeb85 chore(main): release 0.3.4 (#36)
🤖 I have created a release *beep* *boop*
---


## [0.3.4](https://github.com/shizand/statapp/compare/v0.3.3...v0.3.4)
(2023-09-28)


### Исправления

* исправлена ошибка, при СКО = 0 для фактора
([57dec07](57dec07000))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 22:50:15 +03:00
57dec07000 fix: исправлена ошибка, при СКО = 0 для фактора 2023-09-28 22:39:20 +03:00
github-actions[bot]
cca57740a2 chore(main): release 0.3.3 (#29)
🤖 I have created a release *beep* *boop*
---


## [0.3.3](https://github.com/shizand/statapp/compare/v0.3.2...v0.3.3)
(2023-09-28)


### Исправления

* удалена упаковка системных библиотек вместе с программой (Linux)
([b6e10c4](b6e10c4209))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 17:37:22 +03:00
b6e10c4209 fix: удалена упаковка системных библиотек вместе с программой (Linux) 2023-09-28 17:25:49 +03:00
github-actions[bot]
67958838fc chore(main): release 0.3.2 (#28)
🤖 I have created a release *beep* *boop*
---


## [0.3.2](https://github.com/shizand/statapp/compare/v0.3.1...v0.3.2)
(2023-09-28)


### Исправления

* исправлена загрузка данных из файла
([8b7fabf](8b7fabfa46))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 16:17:12 +03:00
8b7fabfa46 fix: исправлена загрузка данных из файла 2023-09-28 16:12:25 +03:00
f603a77130 ci: ubuntu-latest заменена ubuntu-latest 2023-09-28 16:08:20 +03:00
github-actions[bot]
775c0887ab chore(main): release 0.3.1 (#27)
🤖 I have created a release *beep* *boop*
---


## [0.3.1](https://github.com/shizand/statapp/compare/v0.3.0...v0.3.1)
(2023-09-28)


### Исправления

* исправлена локализация стандартных кнопок
([2b061be](2b061bed2f))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 15:45:56 +03:00
2b061bed2f fix: исправлена локализация стандартных кнопок 2023-09-28 15:43:01 +03:00
48ae2644e8 ci: исправил шаблон выбора файлов для загрузки 2023-09-28 15:41:06 +03:00
github-actions[bot]
930424dfb9 chore(main): release 0.3.0 (#25)
🤖 I have created a release *beep* *boop*
---


## [0.3.0](https://github.com/shizand/statapp/compare/v0.2.1...v0.3.0)
(2023-09-28)


### Новые функции

* добавлено чтение и запись исходных данных в файлы .txt, .csv
([#24](https://github.com/shizand/statapp/issues/24))
([b73a3f5](b73a3f5d3b))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-09-28 15:04:59 +03:00
MisterMLiL
b73a3f5d3b feat: добавлено чтение и запись исходных данных в файлы .txt, .csv (#24)
Closes #22

---------

Co-authored-by: Maxim Slipenko <no-reply@maxim.slipenko.com>
2023-09-28 14:57:41 +03:00
2cd82354a1 ci: добавляет checkout для загрузки файлов 2023-09-28 11:22:39 +03:00
13 changed files with 269 additions and 16 deletions

View File

@@ -13,11 +13,16 @@ jobs:
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
matrix: matrix:
os: [ubuntu-latest, windows-latest] os: [ubuntu-20.04, windows-latest]
spec: [statapp-onefile, statapp] spec: [statapp-onefile, statapp]
arch: [x86, x64] arch: [x86, x64]
include:
- os: ubuntu-20.04
target: linux
- os: windows-latest
target: windows
exclude: exclude:
- os: ubuntu-latest - os: ubuntu-20.04
arch: x86 arch: x86
defaults: defaults:
run: run:
@@ -48,12 +53,12 @@ jobs:
with: with:
type: 'zip' type: 'zip'
directory: 'dist' directory: 'dist'
filename: "../${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.spec }}.zip" filename: "../${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}.zip"
- name: Загрузка артефактов - name: Загрузка артефактов
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
name: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.spec }} name: ${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}
path: '${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.spec }}.zip' path: '${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}.zip'
release-please: release-please:
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -65,6 +70,8 @@ jobs:
release-type: python release-type: python
package-name: statapp package-name: statapp
changelog-types: '[{"type":"feat","section":"Новые функции","hidden":false},{"type":"fix","section":"Исправления","hidden":false},{"type":"chore", "hidden":true}]' changelog-types: '[{"type":"feat","section":"Новые функции","hidden":false},{"type":"fix","section":"Исправления","hidden":false},{"type":"chore", "hidden":true}]'
- uses: actions/checkout@v4
if: ${{ steps.release.outputs.release_created }}
- name: Скачивание артефактов - name: Скачивание артефактов
if: ${{ steps.release.outputs.release_created }} if: ${{ steps.release.outputs.release_created }}
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
@@ -75,4 +82,4 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: run:
gh release upload ${{ steps.release.outputs.tag_name }} ./dist/* gh release upload ${{ steps.release.outputs.tag_name }} ./dist/**/*.zip

View File

@@ -1,5 +1,54 @@
# Changelog # Changelog
## [0.3.6](https://github.com/shizand/statapp/compare/v0.3.5...v0.3.6) (2023-09-29)
### Исправления
* добавляет иконку приложения ([#39](https://github.com/shizand/statapp/issues/39)) ([d3cd358](https://github.com/shizand/statapp/commit/d3cd3589a781df47e6d0e9d669a376aefd9090fe))
## [0.3.5](https://github.com/shizand/statapp/compare/v0.3.4...v0.3.5) (2023-09-28)
### Исправления
* исправлен выбор файла для загрузки (Linux) ([c1809a0](https://github.com/shizand/statapp/commit/c1809a0bc778fde52aa392fb6656b0fd2ffeabe5))
## [0.3.4](https://github.com/shizand/statapp/compare/v0.3.3...v0.3.4) (2023-09-28)
### Исправления
* исправлена ошибка, при СКО = 0 для фактора ([57dec07](https://github.com/shizand/statapp/commit/57dec07000e78d694986b1b90de42b84db14c1a7))
## [0.3.3](https://github.com/shizand/statapp/compare/v0.3.2...v0.3.3) (2023-09-28)
### Исправления
* удалена упаковка системных библиотек вместе с программой (Linux) ([b6e10c4](https://github.com/shizand/statapp/commit/b6e10c420958cf554c1953f30c4cfd9dcadebd1a))
## [0.3.2](https://github.com/shizand/statapp/compare/v0.3.1...v0.3.2) (2023-09-28)
### Исправления
* исправлена загрузка данных из файла ([8b7fabf](https://github.com/shizand/statapp/commit/8b7fabfa46d546b1969bdf9f4800cb0e06fa186a))
## [0.3.1](https://github.com/shizand/statapp/compare/v0.3.0...v0.3.1) (2023-09-28)
### Исправления
* исправлена локализация стандартных кнопок ([2b061be](https://github.com/shizand/statapp/commit/2b061bed2f6343fc2feb87472afc4c9a051b30a9))
## [0.3.0](https://github.com/shizand/statapp/compare/v0.2.1...v0.3.0) (2023-09-28)
### Новые функции
* добавлено чтение и запись исходных данных в файлы .txt, .csv ([#24](https://github.com/shizand/statapp/issues/24)) ([b73a3f5](https://github.com/shizand/statapp/commit/b73a3f5d3ba5707f0bdb816452ad7f59c0da8290))
## [0.2.1](https://github.com/shizand/statapp/compare/v0.2.0...v0.2.1) (2023-09-28) ## [0.2.1](https://github.com/shizand/statapp/compare/v0.2.0...v0.2.1) (2023-09-28)

View File

@@ -1,6 +1,6 @@
[tool.poetry] [tool.poetry]
name = "statapp" name = "statapp"
version = "0.2.1" version = "0.3.6"
description = "" description = ""
authors = [ authors = [
"Maxim Slipenko <statapp@maks1ms.addy.io>" "Maxim Slipenko <statapp@maks1ms.addy.io>"

View File

@@ -1,7 +1,18 @@
# -*- mode: python ; coding: utf-8 -*- # -*- mode: python ; coding: utf-8 -*-
import sys
import typing
from pprint import pprint
if typing.TYPE_CHECKING:
from PyInstaller.building.api import COLLECT, EXE, MERGE, PYZ # noqa: F401
from PyInstaller.building.build_main import Analysis # noqa: F401
from PyInstaller.building.datastruct import TOC, Target, Tree # noqa: F401
from PyInstaller.building.osx import BUNDLE # noqa: F401
from PyInstaller.building.splash import Splash # noqa: F401
from PyInstaller.utils.hooks import copy_metadata from PyInstaller.utils.hooks import copy_metadata
datas = [('statapp/images/sticker.gif', 'images')] datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp') datas += copy_metadata('statapp')
a = Analysis( a = Analysis(
@@ -16,6 +27,13 @@ a = Analysis(
excludes=[], excludes=[],
noarchive=False, noarchive=False,
) )
prev_binaries = set(a.binaries)
if sys.platform in ('linux', 'darwin'):
a.exclude_system_libraries(list_of_exceptions=[]) # glob expression
print('\n\nSTRIPPED SYSTEM LIBS')
pprint(sorted(set(prev_binaries) - set(a.binaries)))
pyz = PYZ(a.pure) pyz = PYZ(a.pure)
exe = EXE( exe = EXE(
@@ -37,4 +55,5 @@ exe = EXE(
target_arch=None, target_arch=None,
codesign_identity=None, codesign_identity=None,
entitlements_file=None, entitlements_file=None,
icon='statapp/ui/images/logo.ico',
) )

View File

@@ -1,7 +1,18 @@
# -*- mode: python ; coding: utf-8 -*- # -*- mode: python ; coding: utf-8 -*-
import sys
import typing
from pprint import pprint
if typing.TYPE_CHECKING:
from PyInstaller.building.api import COLLECT, EXE, MERGE, PYZ # noqa: F401
from PyInstaller.building.build_main import Analysis # noqa: F401
from PyInstaller.building.datastruct import TOC, Target, Tree # noqa: F401
from PyInstaller.building.osx import BUNDLE # noqa: F401
from PyInstaller.building.splash import Splash # noqa: F401
from PyInstaller.utils.hooks import copy_metadata from PyInstaller.utils.hooks import copy_metadata
datas = [('statapp/images/sticker.gif', 'images')] datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp') datas += copy_metadata('statapp')
@@ -17,6 +28,13 @@ a = Analysis(
excludes=[], excludes=[],
noarchive=False, noarchive=False,
) )
prev_binaries = set(a.binaries)
if sys.platform in ('linux', 'darwin'):
a.exclude_system_libraries(list_of_exceptions=[]) # glob expression
print('\n\nSTRIPPED SYSTEM LIBS')
pprint(sorted(set(prev_binaries) - set(a.binaries)))
pyz = PYZ(a.pure) pyz = PYZ(a.pure)
exe = EXE( exe = EXE(
@@ -35,6 +53,7 @@ exe = EXE(
target_arch=None, target_arch=None,
codesign_identity=None, codesign_identity=None,
entitlements_file=None, entitlements_file=None,
icon='statapp/ui/images/logo.ico',
) )
coll = COLLECT( coll = COLLECT(
exe, exe,

View File

@@ -1,4 +1,6 @@
import sys import sys
from PySide2 import QtCore
from PySide2.QtWidgets import QApplication from PySide2.QtWidgets import QApplication
from statapp.main_window import MainWindow from statapp.main_window import MainWindow
@@ -6,6 +8,13 @@ from statapp.main_window import MainWindow
def main(): def main():
app = QApplication(sys.argv) app = QApplication(sys.argv)
translator = QtCore.QTranslator(app)
locale = QtCore.QLocale.system().name()
path = QtCore.QLibraryInfo.location(QtCore.QLibraryInfo.TranslationsPath)
translator.load('qt_%s' % locale, path)
app.installTranslator(translator)
window = MainWindow() window = MainWindow()
window.show() window.show()
return app.exec_() return app.exec_()

View File

@@ -19,7 +19,7 @@ class AboutWindow(QMainWindow):
self.ui = Ui_AboutWindow() self.ui = Ui_AboutWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
image_path = resource_path('images/sticker.gif') image_path = resource_path('ui/images/sticker.gif')
movie = QMovie(image_path) movie = QMovie(image_path)
self.ui.labelgif.setMovie(movie) self.ui.labelgif.setMovie(movie)
movie.start() movie.start()

View File

@@ -1,29 +1,80 @@
import numpy as np import numpy as np
from PySide2.QtCore import Slot from PySide2.QtCore import Slot, QLocale, QSize
from PySide2.QtWidgets import QMainWindow from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QMainWindow, QMessageBox, QApplication
from statapp.generate_factor_window import GenerateFactorWindow, INDIRECT_LINK from statapp.generate_factor_window import GenerateFactorWindow, INDIRECT_LINK
from statapp.models.data_model import DataModel from statapp.models.data_model import DataModel
from statapp.generate_window import GenerateWindow from statapp.generate_window import GenerateWindow
from statapp.about_window import AboutWindow from statapp.about_window import AboutWindow
from statapp.models.fileslc_model import FileSLCModel
from statapp.ui.ui_main_window import Ui_MainWindow from statapp.ui.ui_main_window import Ui_MainWindow
from statapp.utils import resource_path
class MainWindow(QMainWindow): class MainWindow(QMainWindow):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self.ui = Ui_MainWindow() self.ui = Ui_MainWindow()
self.ui.setupUi(self) self.ui.setupUi(self)
icon = QIcon()
icon.addFile(resource_path("ui/images/logo.ico"), QSize(), QIcon.Normal, QIcon.Off)
self.setWindowIcon(icon)
self.isDataChanged = False
self.model = DataModel() self.model = DataModel()
self.fileModel = FileSLCModel()
self.ui.tableView.setModel(self.model) self.ui.tableView.setModel(self.model)
@Slot()
def on_openfileaction_triggered(self):
current_data = self.model.getData()
if current_data.size > 1:
file = ''
if self.fileModel.file_name:
file = '\nФайл сохранения:' + self.fileModel.file_name
msgBox = self.createMessageBox \
('Сохранение данных',
"Сохранить данные?" + file,
QMessageBox.Question,
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel,
QMessageBox.Cancel)
reply = msgBox.exec_()
if reply == QMessageBox.StandardButton.Yes:
self.fileModel.saveFile(self.model.getData())
elif reply == QMessageBox.StandardButton.Cancel:
return
else:
data = self.fileModel.loadFile()
if data is not None:
self.model.updateAllData(data)
self.isDataChanged = True
else:
data = self.fileModel.loadFile()
if data is not None:
self.model.updateAllData(data)
self.isDataChanged = True
@Slot()
def on_savefileaction_triggered(self):
self.isDataChanged = not self.fileModel.saveFile(self.model.getData())
@Slot()
def on_closefileaction_triggered(self):
self.fileModel.closeFile()
self.isDataChanged = False
@Slot() @Slot()
def on_generateYaction_triggered(self): def on_generateYaction_triggered(self):
gw = GenerateWindow() gw = GenerateWindow()
if gw.exec(): if gw.exec():
y = np.random.normal(gw.mat, gw.deviation, size=(gw.count, 1)) y = np.random.normal(gw.mat, gw.deviation, size=(gw.count, 1))
self.model.updateAllData(y) self.model.updateAllData(y)
self.isDataChanged = True
@Slot() @Slot()
def on_generateXaction_triggered(self): def on_generateXaction_triggered(self):
@@ -43,6 +94,8 @@ class MainWindow(QMainWindow):
k = 2 - 1 / k k = 2 - 1 / k
if gfw.typeConnection == INDIRECT_LINK: if gfw.typeConnection == INDIRECT_LINK:
k = 1 / k k = 1 / k
if gfw.deviation == 0:
k = 1
x = np.random.normal(gfw.mat * (k ** 3), gfw.deviation * k, size=1) x = np.random.normal(gfw.mat * (k ** 3), gfw.deviation * k, size=1)
x_arr = np.append(x_arr, x) x_arr = np.append(x_arr, x)
@@ -58,9 +111,45 @@ class MainWindow(QMainWindow):
data = np.concatenate((data, x_arr), axis=1) data = np.concatenate((data, x_arr), axis=1)
# data = np.concatenate((data, dd), axis=1) # data = np.concatenate((data, dd), axis=1)
self.model.updateAllData(data) self.model.updateAllData(data)
self.isDataChanged = True
@Slot() @Slot()
def on_aboutmenuaction_triggered(self): def on_aboutmenuaction_triggered(self):
global about_window global about_window
about_window = AboutWindow() about_window = AboutWindow()
about_window.show() about_window.show()
def createMessageBox(self, title, text, icon, buttons, defaultButton):
msgBox = QMessageBox()
msgBox.setIcon(icon)
msgBox.setWindowTitle(title)
msgBox.setText(text)
msgBox.setStandardButtons(buttons)
msgBox.setDefaultButton(defaultButton)
return msgBox
def closeEvent(self, event):
if self.isDataChanged:
file = ''
if self.fileModel.file_name:
file = '\nФайл сохранения:' + self.fileModel.file_name
msgBox = self.createMessageBox \
('Завершение работы',
"Сохранить данные?" + file,
QMessageBox.Question,
QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel,
QMessageBox.Cancel)
reply = msgBox.exec_()
if reply == QMessageBox.StandardButton.Yes:
self.fileModel.saveFile(self.model.getData())
event.accept()
elif reply == QMessageBox.StandardButton.No:
event.accept()
else:
event.ignore()
else:
event.accept()

View File

@@ -0,0 +1,33 @@
import numpy as np
from PySide2.QtWidgets import QFileDialog, QMessageBox
class FileSLCModel:
def __init__(self):
super().__init__()
self.file_name = None
def saveFile(self, data):
if not self.file_name:
self.file_name, _ = QFileDialog.getSaveFileName(None, "Сохранить файл", "", "Text Files (*.txt);;CSV Files (*.csv)")
if self.file_name:
np.savetxt(self.file_name, data, delimiter=",")
return True
return False
def loadFile(self):
self.file_name, _ = QFileDialog.getOpenFileName(None, "Загрузить файл", "", "Files (*.txt *.csv)")
if self.file_name:
try:
content = np.genfromtxt(self.file_name, delimiter=',', invalid_raise=True)
except ValueError as e:
QMessageBox.warning \
(None,
'Ошибка',
"Ошибка чтения файла!\nФайл нельзя открыть или файл неверного формата")
return None
return content
def closeFile(self):
self.file_name = None
pass

BIN
statapp/ui/images/logo.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

Before

Width:  |  Height:  |  Size: 2.9 MiB

After

Width:  |  Height:  |  Size: 2.9 MiB

View File

@@ -40,13 +40,16 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>800</width> <width>800</width>
<height>19</height> <height>21</height>
</rect> </rect>
</property> </property>
<widget class="QMenu" name="filemenu"> <widget class="QMenu" name="filemenu">
<property name="title"> <property name="title">
<string>Файл</string> <string>Файл</string>
</property> </property>
<addaction name="openfileaction"/>
<addaction name="savefileaction"/>
<addaction name="closefileaction"/>
</widget> </widget>
<widget class="QMenu" name="generatemenu"> <widget class="QMenu" name="generatemenu">
<property name="title"> <property name="title">
@@ -93,7 +96,21 @@
<string>Генерация фактора</string> <string>Генерация фактора</string>
</property> </property>
</action> </action>
<action name="openfileaction">
<property name="text">
<string>Открыть</string>
</property>
</action>
<action name="savefileaction">
<property name="text">
<string>Сохранить</string>
</property>
</action>
<action name="closefileaction">
<property name="text">
<string>Закрыть</string>
</property>
</action>
</widget> </widget>
<resources/>
<connections/> <connections/>
</ui> </ui>

View File

@@ -12,7 +12,6 @@ from PySide2.QtCore import *
from PySide2.QtGui import * from PySide2.QtGui import *
from PySide2.QtWidgets import * from PySide2.QtWidgets import *
class Ui_MainWindow(object): class Ui_MainWindow(object):
def setupUi(self, MainWindow): def setupUi(self, MainWindow):
if not MainWindow.objectName(): if not MainWindow.objectName():
@@ -24,6 +23,12 @@ class Ui_MainWindow(object):
self.generateYaction.setObjectName(u"generateYaction") self.generateYaction.setObjectName(u"generateYaction")
self.generateXaction = QAction(MainWindow) self.generateXaction = QAction(MainWindow)
self.generateXaction.setObjectName(u"generateXaction") self.generateXaction.setObjectName(u"generateXaction")
self.openfileaction = QAction(MainWindow)
self.openfileaction.setObjectName(u"openfileaction")
self.savefileaction = QAction(MainWindow)
self.savefileaction.setObjectName(u"savefileaction")
self.closefileaction = QAction(MainWindow)
self.closefileaction.setObjectName(u"closefileaction")
self.centralwidget = QWidget(MainWindow) self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget") self.centralwidget.setObjectName(u"centralwidget")
self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout = QGridLayout(self.centralwidget)
@@ -43,7 +48,7 @@ class Ui_MainWindow(object):
MainWindow.setCentralWidget(self.centralwidget) MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow) self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName(u"menubar") self.menubar.setObjectName(u"menubar")
self.menubar.setGeometry(QRect(0, 0, 800, 19)) self.menubar.setGeometry(QRect(0, 0, 800, 21))
self.filemenu = QMenu(self.menubar) self.filemenu = QMenu(self.menubar)
self.filemenu.setObjectName(u"filemenu") self.filemenu.setObjectName(u"filemenu")
self.generatemenu = QMenu(self.menubar) self.generatemenu = QMenu(self.menubar)
@@ -64,6 +69,9 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.analyzemenu.menuAction()) self.menubar.addAction(self.analyzemenu.menuAction())
self.menubar.addAction(self.modelmenu.menuAction()) self.menubar.addAction(self.modelmenu.menuAction())
self.menubar.addAction(self.helpmenu.menuAction()) self.menubar.addAction(self.helpmenu.menuAction())
self.filemenu.addAction(self.openfileaction)
self.filemenu.addAction(self.savefileaction)
self.filemenu.addAction(self.closefileaction)
self.generatemenu.addAction(self.generateYaction) self.generatemenu.addAction(self.generateYaction)
self.generatemenu.addAction(self.generateXaction) self.generatemenu.addAction(self.generateXaction)
self.helpmenu.addAction(self.aboutmenuaction) self.helpmenu.addAction(self.aboutmenuaction)
@@ -78,6 +86,9 @@ class Ui_MainWindow(object):
self.aboutmenuaction.setText(QCoreApplication.translate("MainWindow", u"\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435", None)) self.aboutmenuaction.setText(QCoreApplication.translate("MainWindow", u"\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435", None))
self.generateYaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430", None)) self.generateYaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u043a\u043b\u0438\u043a\u0430", None))
self.generateXaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0430", None)) self.generateXaction.setText(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0444\u0430\u043a\u0442\u043e\u0440\u0430", None))
self.openfileaction.setText(QCoreApplication.translate("MainWindow", u"\u041e\u0442\u043a\u0440\u044b\u0442\u044c", None))
self.savefileaction.setText(QCoreApplication.translate("MainWindow", u"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c", None))
self.closefileaction.setText(QCoreApplication.translate("MainWindow", u"\u0417\u0430\u043a\u0440\u044b\u0442\u044c", None))
self.label.setText(QCoreApplication.translate("MainWindow", u"\u0421\u0422\u0410\u0422\u0418\u0421\u0422\u0418\u0427\u0415\u0421\u041a\u0418\u0415 \u0414\u0410\u041d\u041d\u042b\u0415", None)) self.label.setText(QCoreApplication.translate("MainWindow", u"\u0421\u0422\u0410\u0422\u0418\u0421\u0422\u0418\u0427\u0415\u0421\u041a\u0418\u0415 \u0414\u0410\u041d\u041d\u042b\u0415", None))
self.filemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0424\u0430\u0439\u043b", None)) self.filemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0424\u0430\u0439\u043b", None))
self.generatemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439", None)) self.generatemenu.setTitle(QCoreApplication.translate("MainWindow", u"\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0435\u0439", None))