22 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
github-actions[bot]
16d8481700 chore(main): release 0.2.1 (#23)
🤖 I have created a release *beep* *boop*
---


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


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

* обновлено окно "О программе"
([#21](https://github.com/shizand/statapp/issues/21))
([37ea556](37ea556ad2))

---
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 11:14:06 +03:00
37ea556ad2 fix: обновлено окно "О программе" (#21) 2023-09-28 11:08:53 +03:00
c0fbc0fbd9 ci: убрал лишнюю вложенность 2023-09-28 11:05:21 +03:00
cb34931151 ci: добавил архивацию в zip файлов сборки 2023-09-28 10:53:36 +03:00
bdc530b2e0 ci: исправлен workflow с загрузкой бинарников 2023-09-28 10:42:27 +03:00
15 changed files with 447 additions and 102 deletions

View File

@@ -13,11 +13,16 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
os: [ubuntu-20.04, windows-latest]
spec: [statapp-onefile, statapp]
arch: [x86, x64]
include:
- os: ubuntu-20.04
target: linux
- os: windows-latest
target: windows
exclude:
- os: ubuntu-latest
- os: ubuntu-20.04
arch: x86
defaults:
run:
@@ -42,22 +47,31 @@ jobs:
- name: Установка зависимостей
run: poetry install
- name: Сборка
run: poetry run pyinstaller ${{ matrix.spec }}.spec
run: poetry run pyinstaller ${{ matrix.spec }}.spec\
- name: Архивация
uses: thedoctor0/zip-release@0.7.1
with:
type: 'zip'
directory: 'dist'
filename: "../${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}.zip"
- name: Загрузка артефактов
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.spec }}
path: ./dist/statapp*
name: ${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}
path: '${{ matrix.target }}-${{ matrix.arch }}-${{ matrix.spec }}.zip'
release-please:
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: python
package-name: statapp
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: Скачивание артефактов
if: ${{ steps.release.outputs.release_created }}
uses: actions/download-artifact@v3
@@ -68,4 +82,4 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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,61 @@
# 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)
### Исправления
* обновлено окно "О программе" ([#21](https://github.com/shizand/statapp/issues/21)) ([37ea556](https://github.com/shizand/statapp/commit/37ea556ad20c7b2d3b346e0eafd583c60121d594))
## [0.2.0](https://github.com/shizand/statapp/compare/v0.1.0...v0.2.0) (2023-09-28)

View File

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

View File

@@ -1,11 +1,25 @@
# -*- 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
datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp')
a = Analysis(
['statapp/__main__.py'],
pathex=[],
binaries=[],
datas=[],
datas=datas,
hiddenimports=[],
hookspath=[],
hooksconfig={},
@@ -13,6 +27,13 @@ a = Analysis(
excludes=[],
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)
exe = EXE(
@@ -34,4 +55,5 @@ exe = EXE(
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='statapp/ui/images/logo.ico',
)

View File

@@ -1,11 +1,26 @@
# -*- 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
datas = [('statapp/ui/images/*', 'ui/images')]
datas += copy_metadata('statapp')
a = Analysis(
['statapp/__main__.py'],
pathex=[],
binaries=[],
datas=[('statapp/images/sticker.gif', 'images')],
datas=datas,
hiddenimports=[],
hookspath=[],
hooksconfig={},
@@ -13,6 +28,13 @@ a = Analysis(
excludes=[],
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)
exe = EXE(
@@ -25,12 +47,13 @@ exe = EXE(
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon='statapp/ui/images/logo.ico',
)
coll = COLLECT(
exe,

View File

@@ -1,4 +1,6 @@
import sys
from PySide2 import QtCore
from PySide2.QtWidgets import QApplication
from statapp.main_window import MainWindow
@@ -6,6 +8,13 @@ from statapp.main_window import MainWindow
def main():
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.show()
return app.exec_()

View File

@@ -1,23 +1,30 @@
import sys
from PySide2.QtGui import QMovie
from PySide2.QtWidgets import QMainWindow
from statapp.ui.ui_about_window import Ui_AboutWindow
from statapp.utils import resource_path
if sys.version_info < (3, 8):
import importlib_metadata
else:
import importlib.metadata as importlib_metadata
class AboutWindow(QMainWindow):
pixmap = None
movie = None
def __init__(self):
super().__init__()
self.ui = Ui_AboutWindow()
self.ui.setupUi(self)
image_path = resource_path('images/sticker.gif')
image_path = resource_path('ui/images/sticker.gif')
movie = QMovie(image_path)
self.ui.labelgif.setMovie(movie)
movie.start()
self.pixmap = movie
self.movie = movie
self.setFixedSize(self.size())
version = importlib_metadata.version(__package__ or __name__)
self.ui.versionLabel.setText(f"Версия: {version}")

View File

@@ -1,29 +1,80 @@
import numpy as np
from PySide2.QtCore import Slot
from PySide2.QtWidgets import QMainWindow
from PySide2.QtCore import Slot, QLocale, QSize
from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QMainWindow, QMessageBox, QApplication
from statapp.generate_factor_window import GenerateFactorWindow, INDIRECT_LINK
from statapp.models.data_model import DataModel
from statapp.generate_window import GenerateWindow
from statapp.about_window import AboutWindow
from statapp.models.fileslc_model import FileSLCModel
from statapp.ui.ui_main_window import Ui_MainWindow
from statapp.utils import resource_path
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.ui = Ui_MainWindow()
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.fileModel = FileSLCModel()
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()
def on_generateYaction_triggered(self):
gw = GenerateWindow()
if gw.exec():
y = np.random.normal(gw.mat, gw.deviation, size=(gw.count, 1))
self.model.updateAllData(y)
self.isDataChanged = True
@Slot()
def on_generateXaction_triggered(self):
@@ -43,6 +94,8 @@ class MainWindow(QMainWindow):
k = 2 - 1 / k
if gfw.typeConnection == INDIRECT_LINK:
k = 1 / k
if gfw.deviation == 0:
k = 1
x = np.random.normal(gfw.mat * (k ** 3), gfw.deviation * k, size=1)
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, dd), axis=1)
self.model.updateAllData(data)
self.isDataChanged = True
@Slot()
def on_aboutmenuaction_triggered(self):
global about_window
about_window = AboutWindow()
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

View File

@@ -9,7 +9,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>476</width>
<width>483</width>
<height>543</height>
</rect>
</property>
@@ -23,70 +23,7 @@
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout">
<item row="4" column="1">
<widget class="QLabel" name="labelowner">
<property name="font">
<font>
<pointsize>14</pointsize>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Донецкий Национальный Технический Университет</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="labeldevelopers">
<property name="font">
<font>
<pointsize>14</pointsize>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Разработчики: Слипенко М., Лазуренко Е.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="labelbasegigamen">
<property name="font">
<font>
<pointsize>14</pointsize>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Теоретический фундамент: Дмитрюк Т. Г.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="5" column="1">
<widget class="QLabel" name="labelgif">
<property name="minimumSize">
<size>
@@ -103,6 +40,7 @@
<property name="font">
<font>
<pointsize>14</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
@@ -122,6 +60,102 @@
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLabel" name="labelowner">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Донецкий Национальный Технический Университет</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="labeldevelopers">
<property name="font">
<font>
<pointsize>14</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Разработчики: Слипенко М., Лазуренко Е.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="versionLabel">
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Версия:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="labelbasegigamen">
<property name="font">
<font>
<pointsize>14</pointsize>
<weight>50</weight>
<italic>false</italic>
<bold>false</bold>
<underline>false</underline>
<strikeout>false</strikeout>
<stylestrategy>PreferDefault</stylestrategy>
<kerning>true</kerning>
</font>
</property>
<property name="text">
<string>Теоретический фундамент: Дмитрюк Т. Г.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="mainLabel">
<property name="font">
<font>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<string>Statapp</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>

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>
<y>0</y>
<width>800</width>
<height>19</height>
<height>21</height>
</rect>
</property>
<widget class="QMenu" name="filemenu">
<property name="title">
<string>Файл</string>
</property>
<addaction name="openfileaction"/>
<addaction name="savefileaction"/>
<addaction name="closefileaction"/>
</widget>
<widget class="QMenu" name="generatemenu">
<property name="title">
@@ -93,7 +96,21 @@
<string>Генерация фактора</string>
</property>
</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>
<resources/>
<connections/>
</ui>

View File

@@ -18,7 +18,7 @@ class Ui_AboutWindow(object):
if not AboutWindow.objectName():
AboutWindow.setObjectName(u"AboutWindow")
AboutWindow.setEnabled(True)
AboutWindow.resize(476, 543)
AboutWindow.resize(483, 543)
AboutWindow.setAutoFillBackground(False)
self.centralwidget = QWidget(AboutWindow)
self.centralwidget.setObjectName(u"centralwidget")
@@ -26,44 +26,72 @@ class Ui_AboutWindow(object):
self.gridLayout_2.setObjectName(u"gridLayout_2")
self.gridLayout = QGridLayout()
self.gridLayout.setObjectName(u"gridLayout")
self.labelowner = QLabel(self.centralwidget)
self.labelowner.setObjectName(u"labelowner")
self.labelgif = QLabel(self.centralwidget)
self.labelgif.setObjectName(u"labelgif")
self.labelgif.setMinimumSize(QSize(50, 50))
self.labelgif.setMaximumSize(QSize(500, 600))
font = QFont()
font.setPointSize(14)
font.setBold(False)
font.setItalic(False)
font.setUnderline(False)
font.setWeight(50)
font.setStrikeOut(False)
font.setKerning(True)
font.setStyleStrategy(QFont.PreferDefault)
self.labelowner.setFont(font)
self.labelgif.setFont(font)
self.labelgif.setFrameShape(QFrame.NoFrame)
self.labelgif.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.labelgif, 5, 1, 1, 1)
self.labelowner = QLabel(self.centralwidget)
self.labelowner.setObjectName(u"labelowner")
font1 = QFont()
font1.setPointSize(12)
font1.setBold(False)
font1.setItalic(False)
font1.setUnderline(False)
font1.setWeight(50)
font1.setStrikeOut(False)
font1.setKerning(True)
font1.setStyleStrategy(QFont.PreferDefault)
self.labelowner.setFont(font1)
self.labelowner.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.labelowner, 4, 1, 1, 1)
self.gridLayout.addWidget(self.labelowner, 6, 1, 1, 1)
self.labeldevelopers = QLabel(self.centralwidget)
self.labeldevelopers.setObjectName(u"labeldevelopers")
self.labeldevelopers.setFont(font)
self.labeldevelopers.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.labeldevelopers, 0, 1, 1, 1)
self.gridLayout.addWidget(self.labeldevelopers, 2, 1, 1, 1)
self.versionLabel = QLabel(self.centralwidget)
self.versionLabel.setObjectName(u"versionLabel")
font2 = QFont()
font2.setPointSize(12)
self.versionLabel.setFont(font2)
self.versionLabel.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.versionLabel, 1, 1, 1, 1)
self.labelbasegigamen = QLabel(self.centralwidget)
self.labelbasegigamen.setObjectName(u"labelbasegigamen")
self.labelbasegigamen.setFont(font)
self.labelbasegigamen.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.labelbasegigamen, 1, 1, 1, 1)
self.gridLayout.addWidget(self.labelbasegigamen, 3, 1, 1, 1)
self.labelgif = QLabel(self.centralwidget)
self.labelgif.setObjectName(u"labelgif")
self.labelgif.setMinimumSize(QSize(50, 50))
self.labelgif.setMaximumSize(QSize(500, 600))
self.labelgif.setFont(font)
self.labelgif.setFrameShape(QFrame.NoFrame)
self.labelgif.setAlignment(Qt.AlignCenter)
self.mainLabel = QLabel(self.centralwidget)
self.mainLabel.setObjectName(u"mainLabel")
font3 = QFont()
font3.setPointSize(20)
self.mainLabel.setFont(font3)
self.mainLabel.setAlignment(Qt.AlignCenter)
self.gridLayout.addWidget(self.labelgif, 2, 1, 1, 1)
self.gridLayout.addWidget(self.mainLabel, 0, 1, 1, 1)
self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
@@ -77,8 +105,10 @@ class Ui_AboutWindow(object):
def retranslateUi(self, AboutWindow):
AboutWindow.setWindowTitle(QCoreApplication.translate("AboutWindow", u"\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0435", None))
self.labelgif.setText("")
self.labelowner.setText(QCoreApplication.translate("AboutWindow", u"\u0414\u043e\u043d\u0435\u0446\u043a\u0438\u0439 \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0438\u0442\u0435\u0442", None))
self.labeldevelopers.setText(QCoreApplication.translate("AboutWindow", u"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438: \u0421\u043b\u0438\u043f\u0435\u043d\u043a\u043e \u041c., \u041b\u0430\u0437\u0443\u0440\u0435\u043d\u043a\u043e \u0415.", None))
self.versionLabel.setText(QCoreApplication.translate("AboutWindow", u"\u0412\u0435\u0440\u0441\u0438\u044f:", None))
self.labelbasegigamen.setText(QCoreApplication.translate("AboutWindow", u"\u0422\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442: \u0414\u043c\u0438\u0442\u0440\u044e\u043a \u0422. \u0413.", None))
self.labelgif.setText("")
self.mainLabel.setText(QCoreApplication.translate("AboutWindow", u"Statapp", None))
# retranslateUi

View File

@@ -12,7 +12,6 @@ from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
if not MainWindow.objectName():
@@ -24,6 +23,12 @@ class Ui_MainWindow(object):
self.generateYaction.setObjectName(u"generateYaction")
self.generateXaction = QAction(MainWindow)
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.setObjectName(u"centralwidget")
self.gridLayout = QGridLayout(self.centralwidget)
@@ -43,7 +48,7 @@ class Ui_MainWindow(object):
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QMenuBar(MainWindow)
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.setObjectName(u"filemenu")
self.generatemenu = QMenu(self.menubar)
@@ -64,6 +69,9 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.analyzemenu.menuAction())
self.menubar.addAction(self.modelmenu.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.generateXaction)
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.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.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.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))