Добавлены описание проекта
рефакторинг модели данных
This commit is contained in:
33
README.md
33
README.md
@@ -1,29 +1,16 @@
|
|||||||
# README #
|
# О проекте #
|
||||||
|
Данная программа предназначена для расчета цикла светофорного регулирования
|
||||||
|
|
||||||
This README would normally document whatever steps are necessary to get your application up and running.
|
### Используемые технологии ###
|
||||||
|
|
||||||
### What is this repository for? ###
|
* wxPython 4.0.3
|
||||||
|
* sqlite
|
||||||
|
* sqlalchemy
|
||||||
|
|
||||||
* Quick summary
|
### Команда проекта ###
|
||||||
* Version
|
|
||||||
* [Learn Markdown](https://bitbucket.org/tutorials/markdowndemo)
|
|
||||||
|
|
||||||
### How do I get set up? ###
|
* Александр Сальный
|
||||||
|
* Ольга Курьянова
|
||||||
|
* Ксения Талыкова
|
||||||
|
|
||||||
* Summary of set up
|
|
||||||
* Configuration
|
|
||||||
* Dependencies
|
|
||||||
* Database configuration
|
|
||||||
* How to run tests
|
|
||||||
* Deployment instructions
|
|
||||||
|
|
||||||
### Contribution guidelines ###
|
|
||||||
|
|
||||||
* Writing tests
|
|
||||||
* Code review
|
|
||||||
* Other guidelines
|
|
||||||
|
|
||||||
### Who do I talk to? ###
|
|
||||||
|
|
||||||
* Repo owner or admin
|
|
||||||
* Other community or team contact
|
|
||||||
43
controller.py
Normal file
43
controller.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import os
|
||||||
|
import tkinter as tk
|
||||||
|
import wx
|
||||||
|
|
||||||
|
def setBacgroundColor():
|
||||||
|
"""
|
||||||
|
Устанавливает цвет панели для приложения
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
color = "white"
|
||||||
|
return color
|
||||||
|
|
||||||
|
def setBckgroundButtonColor():
|
||||||
|
# todo Найти все кнопки в панели и установить им цвет
|
||||||
|
"""
|
||||||
|
Устанавливает цвет кнопок
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
wx.lib.colourdb.updateColourDB()
|
||||||
|
color = wx.NamedColour("light coral")
|
||||||
|
return color
|
||||||
|
|
||||||
|
def getFullPath(file):
|
||||||
|
put = os.getcwd()
|
||||||
|
path = str(put) + '\\' + file
|
||||||
|
return path
|
||||||
|
|
||||||
|
|
||||||
|
def setSize():
|
||||||
|
"""
|
||||||
|
:parameter sh,sw - ширина и высота экрана, на котором
|
||||||
|
запускается программа
|
||||||
|
:return: w,h - размеры фрейма для отрисовки gui
|
||||||
|
"""
|
||||||
|
root = tk.Tk()
|
||||||
|
sw = root.winfo_screenwidth()
|
||||||
|
sh = root.winfo_screenheight()
|
||||||
|
w = int(0.75 * sw)
|
||||||
|
h = int(0.75 * sh)
|
||||||
|
|
||||||
|
if w < 800 and h < 600:
|
||||||
|
w, h = 800, 600
|
||||||
|
return w, h
|
||||||
47
db/models.py
47
db/models.py
@@ -3,7 +3,8 @@ from sqlalchemy import create_engine
|
|||||||
from sqlalchemy.ext.declarative import declarative_base
|
from sqlalchemy.ext.declarative import declarative_base
|
||||||
from sqlalchemy.orm import sessionmaker
|
from sqlalchemy.orm import sessionmaker
|
||||||
|
|
||||||
engine = create_engine("sqlite:///odd.db", echo=True)
|
path = "C:\\Users\\danamir\\PycharmProjects\\odd-perekrestok\\db\\odd.db"
|
||||||
|
engine = create_engine("sqlite:///C:\\Users\\danamir\\PycharmProjects\\odd-perekrestok\\db\\odd.db", echo=True)
|
||||||
Session = sessionmaker(bind=engine)
|
Session = sessionmaker(bind=engine)
|
||||||
Base = declarative_base(engine)
|
Base = declarative_base(engine)
|
||||||
meta = Base.metadata
|
meta = Base.metadata
|
||||||
@@ -29,9 +30,9 @@ class KatDorogi(Base):
|
|||||||
__tablename__ = 'KatDor'
|
__tablename__ = 'KatDor'
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
kategoria = Column("kategoria", Integer)
|
kategoria = Column("kategoria", Integer)
|
||||||
minshirinapolosu = Column("Min Shirina Polosu", Float(Precision=16))
|
minshirinapolosu = Column("Min Shirina Polosu", Float)
|
||||||
maxshirinapolosu = Column("Max Shirina Polosu", Float(Precision=16))
|
maxshirinapolosu = Column("Max Shirina Polosu", Float)
|
||||||
shirinaobochinu = Column("Shirian Obochinu", Float(Precision=16))
|
shirinaobochinu = Column("Shirian Obochinu", Float)
|
||||||
maxpivedinetns = Column("Max Prived Intens", Integer)
|
maxpivedinetns = Column("Max Prived Intens", Integer)
|
||||||
|
|
||||||
def __init__(self, kategoria, minshirinapolosu, maxshirinapolosu, shirinaobochinu, maxpivedinetns):
|
def __init__(self, kategoria, minshirinapolosu, maxshirinapolosu, shirinaobochinu, maxpivedinetns):
|
||||||
@@ -45,35 +46,19 @@ class KatDorogi(Base):
|
|||||||
return "KatDor(kategoria=%s, minshirinapolosu=%s, maxshirinapolosu=%s, shirinaobochinu=%s, maxpivedinetns=%s)" % \
|
return "KatDor(kategoria=%s, minshirinapolosu=%s, maxshirinapolosu=%s, shirinaobochinu=%s, maxpivedinetns=%s)" % \
|
||||||
(self.kategoria, self.minshirinapolosu, self.maxshirinapolosu, self.shirinaobochinu, self.maxpivedinetns)
|
(self.kategoria, self.minshirinapolosu, self.maxshirinapolosu, self.shirinaobochinu, self.maxpivedinetns)
|
||||||
|
|
||||||
class Zadanie():
|
|
||||||
__tablename__ = 'KatDor'
|
|
||||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
||||||
N1 = Column("N1", Float(Precision=16))
|
|
||||||
N11 = Column("N11", Float(Precision=16))
|
|
||||||
N12 = Column("N11", Float(Precision=16))
|
|
||||||
N13 = Column("N11", Float(Precision=16))
|
|
||||||
N1p = Column("N11", Float(Precision=16))
|
|
||||||
N2 = Column("N11", Float(Precision=16))
|
|
||||||
N21 = Column("N11", Float(Precision=16))
|
|
||||||
N22 = Column("N11", Float(Precision=16))
|
|
||||||
N23 = Column("N11", Float(Precision=16))
|
|
||||||
N2p = Column("N11", Float(Precision=16))
|
|
||||||
N3 = Column("N11", Float(Precision=16))
|
|
||||||
N31 = Column("N11", Float(Precision=16))
|
|
||||||
N32 = Column("N11", Float(Precision=16))
|
|
||||||
N33 = Column("N11", Float(Precision=16))
|
|
||||||
N3p = Column("N11", Float(Precision=16))
|
|
||||||
N4 = Column("N11", Float(Precision=16))
|
|
||||||
N41 = Column("N11", Float(Precision=16))
|
|
||||||
N42 = Column("N11", Float(Precision=16))
|
|
||||||
N43 = Column("N11", Float(Precision=16))
|
|
||||||
N4p = Column("N11", Float(Precision=16))
|
|
||||||
|
|
||||||
def __init__(self, n1, n11, n12, n13):
|
class Zadanie(Base):
|
||||||
|
__tablename__ = 'Zadanie'
|
||||||
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||||
|
N1 = Column("n1", Float)
|
||||||
|
|
||||||
|
def __init__(self,n1):
|
||||||
self.n1 = n1
|
self.n1 = n1
|
||||||
self.n11 = n11
|
|
||||||
self.n12 = n12
|
def __repr__(self):
|
||||||
self.n13 = n13
|
return "Zadanie(n1=%s)" %(self.n1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
def getFullPath(file):
|
|
||||||
put = os.getcwd()
|
|
||||||
path = str(put) + '\\' + file
|
|
||||||
return path
|
|
||||||
|
|
||||||
file =img/good.jpg
|
|
||||||
p1 = getFullPath("img\error.jpg")
|
|
||||||
print(p1)
|
|
||||||
@@ -10,7 +10,7 @@ class SeconPageFrame(wx.Frame):
|
|||||||
wx.Frame.__init__(self, *args, **kwds)
|
wx.Frame.__init__(self, *args, **kwds)
|
||||||
self.SetSize((658, 331))
|
self.SetSize((658, 331))
|
||||||
self.panel_1 = wx.Panel(self, wx.ID_ANY)
|
self.panel_1 = wx.Panel(self, wx.ID_ANY)
|
||||||
self.color = "white"
|
|
||||||
self.panel_1.SetBackgroundColour(self.color)
|
self.panel_1.SetBackgroundColour(self.color)
|
||||||
self.radio_btn_2 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Крестообразный")
|
self.radio_btn_2 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Крестообразный")
|
||||||
self.radio_btn_3 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Т-образный")
|
self.radio_btn_3 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Т-образный")
|
||||||
@@ -47,33 +47,38 @@ class SeconPageFrame(wx.Frame):
|
|||||||
label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета")
|
label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета")
|
||||||
label_1.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
|
label_1.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
|
||||||
sizer_2.Add(label_1, 0, wx.ALIGN_CENTER | wx.ALL, 10)
|
sizer_2.Add(label_1, 0, wx.ALIGN_CENTER | wx.ALL, 10)
|
||||||
|
|
||||||
label_7 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Горизональной улицы")
|
label_7 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Горизональной улицы")
|
||||||
grid_sizer_1.Add(label_7, 0, wx.ALIGN_CENTER | wx.ALL, 10)
|
grid_sizer_1.Add(label_7, 0, wx.ALIGN_CENTER | wx.ALL, 10)
|
||||||
label_8 = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER)
|
self.katHorizont = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER)
|
||||||
grid_sizer_1.Add(label_8, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(self.katHorizont, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
||||||
label_9 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Вертикальной улицы")
|
label_9 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Вертикальной улицы")
|
||||||
grid_sizer_1.Add(label_9, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(label_9, 0, wx.ALIGN_CENTER, 0)
|
||||||
label_10 = wx.StaticText(self.panel_1, wx.ID_ANY, "")
|
self.katVertical = wx.StaticText(self.panel_1, wx.ID_ANY, "")
|
||||||
grid_sizer_1.Add(label_10, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(self.katVertical, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
||||||
label_11 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Горизонтальной улицы")
|
label_11 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Горизонтальной улицы")
|
||||||
grid_sizer_1.Add(label_11, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(label_11, 0, wx.ALIGN_CENTER, 0)
|
||||||
label_12 = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER)
|
self.kolvoPolosHorizont = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER)
|
||||||
grid_sizer_1.Add(label_12, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(self.kolvoPolosHorizont, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
||||||
label_13 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Вертикальной улицы")
|
label_13 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Вертикальной улицы")
|
||||||
grid_sizer_1.Add(label_13, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(label_13, 0, wx.ALIGN_CENTER, 0)
|
||||||
label_14 = wx.StaticText(self.panel_1, wx.ID_ANY, "")
|
self.kolvoPolosVert = wx.StaticText(self.panel_1, wx.ID_ANY, "")
|
||||||
grid_sizer_1.Add(label_14, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_1.Add(self.kolvoPolosVert, 0, wx.ALIGN_CENTER, 0)
|
||||||
sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0)
|
sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0)
|
||||||
|
|
||||||
label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения")
|
label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения")
|
||||||
label_18.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
|
label_18.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, ""))
|
||||||
sizer_2.Add(label_18, 0, wx.ALL, 9)
|
sizer_2.Add(label_18, 0, wx.ALL, 9)
|
||||||
grid_sizer_3.Add(self.radio_btn_2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
|
grid_sizer_3.Add(self.radio_btn_2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
|
||||||
grid_sizer_3.Add(self.radio_btn_3, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
|
grid_sizer_3.Add(self.radio_btn_3, 0, wx.ALIGN_CENTER_HORIZONTAL, 0)
|
||||||
|
|
||||||
self.bitmap_4 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("/Users/danamir/PycharmProjects/odd-perekrestok/img/perekr-4.jpg", wx.BITMAP_TYPE_ANY))
|
self.bitmap_4 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100,100, wx.BITMAP_TYPE_ANY))
|
||||||
grid_sizer_3.Add(self.bitmap_4, 0, 0, 0)
|
grid_sizer_3.Add(self.bitmap_4, 0, 0, 0)
|
||||||
|
|
||||||
self.bitmap_5 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("/Users/danamir/PycharmProjects/odd-perekrestok/img/perekr-t.png", wx.BITMAP_TYPE_ANY))
|
self.bitmap_5 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY))
|
||||||
grid_sizer_3.Add(self.bitmap_5, 0, 0, 0)
|
grid_sizer_3.Add(self.bitmap_5, 0, 0, 0)
|
||||||
sizer_2.Add(grid_sizer_3, 1, wx.EXPAND, 0)
|
sizer_2.Add(grid_sizer_3, 1, wx.EXPAND, 0)
|
||||||
|
|
||||||
@@ -84,7 +89,7 @@ class SeconPageFrame(wx.Frame):
|
|||||||
grid_sizer_2.Add(label_16, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 0)
|
grid_sizer_2.Add(label_16, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 0)
|
||||||
grid_sizer_2.Add(self.text_ctrl_1, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_2.Add(self.text_ctrl_1, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
||||||
bitmap_2 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("/Users/danamir/PycharmProjects/odd-perekrestok/img/123.jpg", wx.BITMAP_TYPE_ANY))
|
bitmap_2 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY))
|
||||||
bitmap_2.Hide()
|
bitmap_2.Hide()
|
||||||
grid_sizer_2.Add(bitmap_2, 0, 0, 0)
|
grid_sizer_2.Add(bitmap_2, 0, 0, 0)
|
||||||
|
|
||||||
@@ -92,7 +97,7 @@ class SeconPageFrame(wx.Frame):
|
|||||||
grid_sizer_2.Add(label_17, 0, 0, 0)
|
grid_sizer_2.Add(label_17, 0, 0, 0)
|
||||||
grid_sizer_2.Add(self.text_ctrl_2, 0, wx.ALIGN_CENTER, 0)
|
grid_sizer_2.Add(self.text_ctrl_2, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
|
||||||
bitmap_3 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("/Users/danamir/PycharmProjects/odd-perekrestok/img/123.jpg", wx.BITMAP_TYPE_ANY))
|
bitmap_3 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY))
|
||||||
grid_sizer_2.Add(bitmap_3, 0, 0, 0)
|
grid_sizer_2.Add(bitmap_3, 0, 0, 0)
|
||||||
sizer_2.Add(grid_sizer_2, 1, wx.EXPAND, 0)
|
sizer_2.Add(grid_sizer_2, 1, wx.EXPAND, 0)
|
||||||
|
|
||||||
@@ -116,14 +121,14 @@ class SeconPageFrame(wx.Frame):
|
|||||||
self.Refresh()
|
self.Refresh()
|
||||||
|
|
||||||
def set_kat_dor(self):
|
def set_kat_dor(self):
|
||||||
self.kolvo_polosv_vert.SetLabel(str(random.randint(2, 4)))
|
self.kolvoPolosVert.SetLabel(str(random.randint(2, 4)))
|
||||||
self.kolvo_polosv_horiz.SetLabel(str(random.randint(2, 4)))
|
self.kolvoPolosHorizont.SetLabel(str(random.randint(2, 4)))
|
||||||
self.kat_horizont.SetLabel(str(random.randint(2, 4)))
|
self.katHorizont.SetLabel(str(random.randint(2, 4)))
|
||||||
self.kat_vertical.SetLabel(str(random.randint(2, 4)))
|
self.katVertical.SetLabel(str(random.randint(2, 4)))
|
||||||
|
|
||||||
def proverka_vvoda(self, event):
|
def proverka_vvoda(self, event):
|
||||||
self.pr_Vert = int(self.kolvo_polosv_horiz.GetLabel()) * 3.75
|
self.pr_Vert = int(self.kolvoPolosHorizont.GetLabel()) * 3.75
|
||||||
self.pr_hor = int(self.kolvo_polosv_horiz.GetLabel()) * 3.75
|
self.pr_hor = int(self.kolvoPolosHorizont.GetLabel()) * 3.75
|
||||||
|
|
||||||
print(self.pr_hor)
|
print(self.pr_hor)
|
||||||
print(self.pr_Vert)
|
print(self.pr_Vert)
|
||||||
@@ -186,7 +191,6 @@ class SeconPageFrame(wx.Frame):
|
|||||||
class SecondPage(wx.App):
|
class SecondPage(wx.App):
|
||||||
def OnInit(self):
|
def OnInit(self):
|
||||||
self.frame = SeconPageFrame(None, wx.ID_ANY, "")
|
self.frame = SeconPageFrame(None, wx.ID_ANY, "")
|
||||||
self.SetTopWindow(self.frame)
|
|
||||||
self.frame.Show()
|
self.frame.Show()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
160
main.py
160
main.py
@@ -1,87 +1,91 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: UTF-8 -*-
|
||||||
|
|
||||||
import wx
|
import wx
|
||||||
|
import controller
|
||||||
from db.models import Student
|
from db.models import Student
|
||||||
from sqlalchemy import exists
|
from sqlalchemy import exists
|
||||||
from db.models import Session
|
from db.models import Session
|
||||||
from gui import SecondPage
|
from gui import SecondPage
|
||||||
|
|
||||||
|
class MyFrame(wx.Frame):
|
||||||
|
def __init__(self, *args, **kwds):
|
||||||
|
# begin wxGlade: MyFrame.__init__
|
||||||
|
kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE
|
||||||
|
wx.Frame.__init__(self, *args, **kwds)
|
||||||
|
self.panel_1 = wx.Panel(self, wx.ID_ANY)
|
||||||
|
self.inpt_name = wx.TextCtrl(self.panel_1, wx.ID_ANY, "")
|
||||||
|
self.inpt_familia = wx.TextCtrl(self.panel_1, wx.ID_ANY, "")
|
||||||
|
self.inpt_group = wx.TextCtrl(self.panel_1, wx.ID_ANY, "")
|
||||||
|
self.inpt_zachetka = wx.TextCtrl(self.panel_1, wx.ID_ANY, "")
|
||||||
|
self.btn2 = wx.Button(self.panel_1, wx.ID_ANY, u"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438")
|
||||||
|
self.button_1 = wx.Button(self.panel_1, wx.ID_ANY, u"\u0414\u0430\u043b\u0435\u0435")
|
||||||
|
|
||||||
class MainFramePanel(wx.Panel):
|
self.__set_properties()
|
||||||
def __init__(self, parent):
|
self.__do_layout()
|
||||||
# todo Изменить цвет панели на белый
|
# end wxGlade
|
||||||
wx.Panel.__init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, size=wx.Size(500, 500),
|
|
||||||
style=wx.FULL_REPAINT_ON_RESIZE)
|
|
||||||
self.frame = parent
|
|
||||||
|
|
||||||
bSizer1 = wx.BoxSizer(wx.VERTICAL)
|
def __set_properties(self):
|
||||||
|
# begin wxGlade: MyFrame.__set_properties
|
||||||
|
self.SetTitle("Расчет цикла свеетофорного регулирования: Приветственая")
|
||||||
|
self.inpt_name.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
|
self.inpt_familia.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
|
self.inpt_zachetka.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
|
self.btn2.SetMinSize((100, 50))
|
||||||
|
self.button_1.SetMinSize((100, 50))
|
||||||
|
self.frameSize = controller.setSize()
|
||||||
|
self.SetSize(self.frameSize)
|
||||||
|
self.SetMinSize((800, 600))
|
||||||
|
self.color = controller.setBacgroundColor()
|
||||||
|
self.panel_1.SetBackgroundColour(self.color)
|
||||||
|
|
||||||
self.lbl_kaf = wx.StaticText(self, wx.ID_ANY, u"Кафедра «Организация и безопасность движения»",
|
# end wxGlade
|
||||||
wx.DefaultPosition, wx.DefaultSize, 0)
|
|
||||||
self.lbl_kaf.Wrap(-1)
|
|
||||||
bSizer1.Add(self.lbl_kaf, 0, wx.ALIGN_CENTER | wx.ALL, 5)
|
|
||||||
|
|
||||||
self.lbl_NameProg = wx.StaticText(self, wx.ID_ANY, u"Расчёт цикла светофорного регулирования на перекрёстке",
|
def __do_layout(self):
|
||||||
wx.DefaultPosition, wx.DefaultSize, 0)
|
# begin wxGlade: MyFrame.__do_layout
|
||||||
self.lbl_NameProg.Wrap(-1)
|
sizer_1 = wx.BoxSizer(wx.VERTICAL)
|
||||||
bSizer1.Add(self.lbl_NameProg, 0, wx.ALIGN_CENTER | wx.ALL, 5)
|
sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, ""), wx.VERTICAL)
|
||||||
|
grid_sizer_2 = wx.GridSizer(0, 2, 0, 0)
|
||||||
self.lbl_predstv = wx.StaticText(self, wx.ID_ANY, u"Представьтесь:", wx.DefaultPosition, wx.DefaultSize, 0)
|
grid_sizer_1 = wx.GridSizer(0, 2, 0, 0)
|
||||||
self.lbl_predstv.Wrap(-1)
|
label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u041a\u0430\u0444\u0435\u0434\u0440\u0430 \"\u041e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f\"")
|
||||||
bSizer1.Add(self.lbl_predstv, 0, wx.ALL, 5)
|
label_1.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
|
sizer_2.Add(label_1, 0, wx.ALIGN_CENTER | wx.BOTTOM | wx.LEFT | wx.RIGHT, 20)
|
||||||
fgSizer1 = wx.FlexGridSizer(0, 2, 0, 0)
|
label_2 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u0420\u0430\u0441\u0447\u0435\u0442 \u0446\u0438\u043a\u043b\u0430 \u0441\u0432\u0435\u0442\u043e\u0444\u043e\u0440\u043d\u043e\u0433\u043e \u0440\u0435\u0433\u0443\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u0440\u0435\u0441\u0442\u043a\u0435")
|
||||||
fgSizer1.SetFlexibleDirection(wx.BOTH)
|
label_2.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
fgSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED)
|
sizer_2.Add(label_2, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
label_3 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435\u0441\u044c")
|
||||||
self.lbl_name = wx.StaticText(self, wx.ID_ANY, u"Имя", wx.DefaultPosition, wx.DefaultSize, 0)
|
label_3.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
self.lbl_name.Wrap(-1)
|
sizer_2.Add(label_3, 0, wx.ALL, 5)
|
||||||
fgSizer1.Add(self.lbl_name, 0, wx.ALL, 5)
|
label_4 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u0418\u043c\u044f")
|
||||||
|
label_4.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
self.inpt_name = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
|
grid_sizer_1.Add(label_4, 0, wx.ALIGN_CENTER, 0)
|
||||||
fgSizer1.Add(self.inpt_name, 0, wx.ALL, 5)
|
grid_sizer_1.Add(self.inpt_name, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
inpt_familia1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u0424\u0430\u043c\u0438\u043b\u0438\u044f")
|
||||||
self.lbl_familia = wx.StaticText(self, wx.ID_ANY, u"Фамилия", wx.DefaultPosition, wx.DefaultSize, 0)
|
inpt_familia1.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
self.lbl_familia.Wrap(-1)
|
grid_sizer_1.Add(inpt_familia1, 0, wx.ALIGN_CENTER, 0)
|
||||||
fgSizer1.Add(self.lbl_familia, 0, wx.ALL, 5)
|
grid_sizer_1.Add(self.inpt_familia, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
label_5 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u0413\u0440\u0443\u043f\u043f\u0430")
|
||||||
self.inpt_familia = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
|
label_5.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
fgSizer1.Add(self.inpt_familia, 0, wx.ALL, 5)
|
grid_sizer_1.Add(label_5, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
grid_sizer_1.Add(self.inpt_group, 0, wx.ALIGN_CENTER, 0)
|
||||||
self.lbl_group = wx.StaticText(self, wx.ID_ANY, u"Группа", wx.DefaultPosition, wx.DefaultSize, 0)
|
label_6 = wx.StaticText(self.panel_1, wx.ID_ANY, u"\u2116 \u0417\u0430\u0447\u0435\u0442\u043d\u043e\u0439 \u043a\u043d\u0438\u0436\u043a\u0438")
|
||||||
self.lbl_group.Wrap(-1)
|
label_6.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, ""))
|
||||||
fgSizer1.Add(self.lbl_group, 0, wx.ALL, 5)
|
grid_sizer_1.Add(label_6, 0, wx.ALIGN_CENTER, 0)
|
||||||
|
grid_sizer_1.Add(self.inpt_zachetka, 0, wx.ALIGN_CENTER, 0)
|
||||||
self.inpt_group = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
|
sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0)
|
||||||
fgSizer1.Add(self.inpt_group, 0, wx.ALL, 5)
|
grid_sizer_2.Add(self.btn2, 0, wx.ALIGN_BOTTOM, 0)
|
||||||
|
grid_sizer_2.Add(self.button_1, 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT, 0)
|
||||||
self.lbl_zachetka = wx.StaticText(self, wx.ID_ANY, u"№ Зачётной книжки", wx.DefaultPosition, wx.DefaultSize, 0)
|
sizer_2.Add(grid_sizer_2, 1, wx.EXPAND, 0)
|
||||||
self.lbl_zachetka.Wrap(-1)
|
self.panel_1.SetSizer(sizer_2)
|
||||||
fgSizer1.Add(self.lbl_zachetka, 0, wx.ALL, 5)
|
sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0)
|
||||||
|
self.SetSizer(sizer_1)
|
||||||
self.inpt_zachetka = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0)
|
|
||||||
fgSizer1.Add(self.inpt_zachetka, 0, wx.ALL, 5)
|
|
||||||
|
|
||||||
bSizer1.Add(fgSizer1, 1, wx.EXPAND, 5)
|
|
||||||
gSizer1 = wx.GridSizer(0, 2, 0, 0)
|
|
||||||
|
|
||||||
self.btn_settongs = wx.Button(self, wx.ID_ANY, u"Настройки", wx.DefaultPosition, wx.DefaultSize, 0)
|
|
||||||
gSizer1.Add(self.btn_settongs, 0, wx.ALIGN_BOTTOM | wx.ALL, 5)
|
|
||||||
|
|
||||||
self.btn_page2 = wx.Button(self, wx.ID_ANY, u"Далее", wx.DefaultPosition, wx.DefaultSize, 0)
|
|
||||||
gSizer1.Add(self.btn_page2, 0, wx.ALIGN_BOTTOM | wx.ALIGN_RIGHT | wx.ALL, 5)
|
|
||||||
|
|
||||||
bSizer1.Add(gSizer1, 1, wx.EXPAND, 5)
|
|
||||||
|
|
||||||
self.SetSizer(bSizer1)
|
|
||||||
self.Layout()
|
self.Layout()
|
||||||
self.btn_page2.Bind(wx.EVT_BUTTON, self.go_page2)
|
# end wxGlade
|
||||||
|
|
||||||
def empty_pole(self):
|
def empty_pole(self):
|
||||||
dlg = wx.MessageDialog(self, 'Не все поля заполнены. Заполните все поля перед продолжением', 'Ошибка', wx.OK)
|
dlg = wx.MessageDialog(self, 'Не все поля заполнены. Заполните все поля перед продолжением', 'Ошибка', wx.OK)
|
||||||
val = dlg.ShowModal()
|
val = dlg.ShowModal()
|
||||||
if val == wx.ID_OK:
|
if val == wx.ID_OK:
|
||||||
dlg.Destroy()
|
dlg.Destroy()
|
||||||
|
|
||||||
def go_page2(self, event):
|
def go_page2(self, event):
|
||||||
|
|
||||||
name = self.inpt_name.GetValue()
|
name = self.inpt_name.GetValue()
|
||||||
@@ -114,23 +118,21 @@ class MainFramePanel(wx.Panel):
|
|||||||
new_session.add(student)
|
new_session.add(student)
|
||||||
new_session.commit()
|
new_session.commit()
|
||||||
|
|
||||||
|
|
||||||
self.frame.Destroy()
|
self.frame.Destroy()
|
||||||
SecondPage.SecondPage.OnInit(SecondPage)
|
SecondPage.SecondPage.OnInit(SecondPage)
|
||||||
|
|
||||||
class MainFrame(wx.Frame):
|
# todo Перенести весь функционал из main.py
|
||||||
def __init__(self, parent):
|
|
||||||
wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition,
|
|
||||||
size=wx.Size(500, 500), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
|
|
||||||
|
|
||||||
self.SetSizeHints(wx.DefaultSize, wx.DefaultSize)
|
class MyApp(wx.App):
|
||||||
|
def OnInit(self):
|
||||||
|
self.frame = MyFrame(None, wx.ID_ANY, "")
|
||||||
|
self.frame.Center()
|
||||||
|
self.frame.Show()
|
||||||
|
return True
|
||||||
|
|
||||||
self.Centre(wx.BOTH)
|
# end of class MyApp
|
||||||
panel = MainFramePanel(self)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app = wx.App(False)
|
app = MyApp(0)
|
||||||
frame = MainFrame(None)
|
|
||||||
frame.Center()
|
|
||||||
frame.Show()
|
|
||||||
app.MainLoop()
|
app.MainLoop()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user