diff --git a/README.md b/README.md index 39af52c..0f12885 100644 --- a/README.md +++ b/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 \ No newline at end of file diff --git a/controller.py b/controller.py new file mode 100644 index 0000000..5b1723e --- /dev/null +++ b/controller.py @@ -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 diff --git a/db/models.py b/db/models.py index a265b6b..c9169e7 100644 --- a/db/models.py +++ b/db/models.py @@ -3,7 +3,8 @@ from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base 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) Base = declarative_base(engine) meta = Base.metadata @@ -29,9 +30,9 @@ class KatDorogi(Base): __tablename__ = 'KatDor' id = Column(Integer, primary_key=True, autoincrement=True) kategoria = Column("kategoria", Integer) - minshirinapolosu = Column("Min Shirina Polosu", Float(Precision=16)) - maxshirinapolosu = Column("Max Shirina Polosu", Float(Precision=16)) - shirinaobochinu = Column("Shirian Obochinu", Float(Precision=16)) + minshirinapolosu = Column("Min Shirina Polosu", Float) + maxshirinapolosu = Column("Max Shirina Polosu", Float) + shirinaobochinu = Column("Shirian Obochinu", Float) maxpivedinetns = Column("Max Prived Intens", Integer) 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)" % \ (self.kategoria, self.minshirinapolosu, self.maxshirinapolosu, self.shirinaobochinu, self.maxpivedinetns) -class Zadanie(): - __tablename__ = 'KatDor' + +class Zadanie(Base): + __tablename__ = 'Zadanie' 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): - self.n1 = n1 - self.n11 = n11 - self.n12 = n12 - self.n13 = n13 + N1 = Column("n1", Float) + + def __init__(self,n1): + self.n1 = n1 + + def __repr__(self): + return "Zadanie(n1=%s)" %(self.n1) + + diff --git a/db/odd.db b/db/odd.db index 3022477..e33735f 100644 Binary files a/db/odd.db and b/db/odd.db differ diff --git a/generalfunction.py b/generalfunction.py deleted file mode 100644 index 6f35fcf..0000000 --- a/generalfunction.py +++ /dev/null @@ -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) diff --git a/gui/SecondPage.py b/gui/SecondPage.py index 30cd701..ac064ed 100644 --- a/gui/SecondPage.py +++ b/gui/SecondPage.py @@ -10,7 +10,7 @@ class SeconPageFrame(wx.Frame): wx.Frame.__init__(self, *args, **kwds) self.SetSize((658, 331)) self.panel_1 = wx.Panel(self, wx.ID_ANY) - self.color = "white" + self.panel_1.SetBackgroundColour(self.color) 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"Т-образный") @@ -47,33 +47,38 @@ class SeconPageFrame(wx.Frame): label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета") 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) + 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) - label_8 = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER) - grid_sizer_1.Add(label_8, 0, wx.ALIGN_CENTER, 0) + self.katHorizont = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER) + grid_sizer_1.Add(self.katHorizont, 0, wx.ALIGN_CENTER, 0) + label_9 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Вертикальной улицы") grid_sizer_1.Add(label_9, 0, wx.ALIGN_CENTER, 0) - label_10 = wx.StaticText(self.panel_1, wx.ID_ANY, "") - grid_sizer_1.Add(label_10, 0, wx.ALIGN_CENTER, 0) + self.katVertical = wx.StaticText(self.panel_1, wx.ID_ANY, "") + grid_sizer_1.Add(self.katVertical, 0, wx.ALIGN_CENTER, 0) + label_11 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Горизонтальной улицы") 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) - grid_sizer_1.Add(label_12, 0, wx.ALIGN_CENTER, 0) + self.kolvoPolosHorizont = wx.StaticText(self.panel_1, wx.ID_ANY, "", style=wx.ALIGN_CENTER) + grid_sizer_1.Add(self.kolvoPolosHorizont, 0, wx.ALIGN_CENTER, 0) + label_13 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Вертикальной улицы") grid_sizer_1.Add(label_13, 0, wx.ALIGN_CENTER, 0) - label_14 = wx.StaticText(self.panel_1, wx.ID_ANY, "") - grid_sizer_1.Add(label_14, 0, wx.ALIGN_CENTER, 0) + self.kolvoPolosVert = wx.StaticText(self.panel_1, wx.ID_ANY, "") + grid_sizer_1.Add(self.kolvoPolosVert, 0, wx.ALIGN_CENTER, 0) sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0) + label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения") label_18.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, "")) 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_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) - 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) 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(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() 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(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) sizer_2.Add(grid_sizer_2, 1, wx.EXPAND, 0) @@ -116,14 +121,14 @@ class SeconPageFrame(wx.Frame): self.Refresh() def set_kat_dor(self): - self.kolvo_polosv_vert.SetLabel(str(random.randint(2, 4))) - self.kolvo_polosv_horiz.SetLabel(str(random.randint(2, 4))) - self.kat_horizont.SetLabel(str(random.randint(2, 4))) - self.kat_vertical.SetLabel(str(random.randint(2, 4))) + self.kolvoPolosVert.SetLabel(str(random.randint(2, 4))) + self.kolvoPolosHorizont.SetLabel(str(random.randint(2, 4))) + self.katHorizont.SetLabel(str(random.randint(2, 4))) + self.katVertical.SetLabel(str(random.randint(2, 4))) def proverka_vvoda(self, event): - self.pr_Vert = int(self.kolvo_polosv_horiz.GetLabel()) * 3.75 - self.pr_hor = int(self.kolvo_polosv_horiz.GetLabel()) * 3.75 + self.pr_Vert = int(self.kolvoPolosHorizont.GetLabel()) * 3.75 + self.pr_hor = int(self.kolvoPolosHorizont.GetLabel()) * 3.75 print(self.pr_hor) print(self.pr_Vert) @@ -186,7 +191,6 @@ class SeconPageFrame(wx.Frame): class SecondPage(wx.App): def OnInit(self): self.frame = SeconPageFrame(None, wx.ID_ANY, "") - self.SetTopWindow(self.frame) self.frame.Show() return True diff --git a/main.py b/main.py index 9f8cf4c..91616c5 100644 --- a/main.py +++ b/main.py @@ -1,87 +1,91 @@ -# -*- coding: utf-8 -*- +# -*- coding: UTF-8 -*- + import wx +import controller from db.models import Student from sqlalchemy import exists from db.models import Session 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): - def __init__(self, parent): - # todo Изменить цвет панели на белый - 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 + self.__set_properties() + self.__do_layout() + # end wxGlade - 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"Кафедра «Организация и безопасность движения»", - wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_kaf.Wrap(-1) - bSizer1.Add(self.lbl_kaf, 0, wx.ALIGN_CENTER | wx.ALL, 5) + # end wxGlade - self.lbl_NameProg = wx.StaticText(self, wx.ID_ANY, u"Расчёт цикла светофорного регулирования на перекрёстке", - wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_NameProg.Wrap(-1) - bSizer1.Add(self.lbl_NameProg, 0, wx.ALIGN_CENTER | wx.ALL, 5) - - self.lbl_predstv = wx.StaticText(self, wx.ID_ANY, u"Представьтесь:", wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_predstv.Wrap(-1) - bSizer1.Add(self.lbl_predstv, 0, wx.ALL, 5) - - fgSizer1 = wx.FlexGridSizer(0, 2, 0, 0) - fgSizer1.SetFlexibleDirection(wx.BOTH) - fgSizer1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) - - self.lbl_name = wx.StaticText(self, wx.ID_ANY, u"Имя", wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_name.Wrap(-1) - fgSizer1.Add(self.lbl_name, 0, wx.ALL, 5) - - self.inpt_name = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) - fgSizer1.Add(self.inpt_name, 0, wx.ALL, 5) - - self.lbl_familia = wx.StaticText(self, wx.ID_ANY, u"Фамилия", wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_familia.Wrap(-1) - fgSizer1.Add(self.lbl_familia, 0, wx.ALL, 5) - - self.inpt_familia = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) - fgSizer1.Add(self.inpt_familia, 0, wx.ALL, 5) - - self.lbl_group = wx.StaticText(self, wx.ID_ANY, u"Группа", wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_group.Wrap(-1) - fgSizer1.Add(self.lbl_group, 0, wx.ALL, 5) - - self.inpt_group = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) - fgSizer1.Add(self.inpt_group, 0, wx.ALL, 5) - - self.lbl_zachetka = wx.StaticText(self, wx.ID_ANY, u"№ Зачётной книжки", wx.DefaultPosition, wx.DefaultSize, 0) - self.lbl_zachetka.Wrap(-1) - fgSizer1.Add(self.lbl_zachetka, 0, wx.ALL, 5) - - 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) + def __do_layout(self): + # begin wxGlade: MyFrame.__do_layout + sizer_1 = wx.BoxSizer(wx.VERTICAL) + sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, ""), wx.VERTICAL) + grid_sizer_2 = wx.GridSizer(0, 2, 0, 0) + grid_sizer_1 = wx.GridSizer(0, 2, 0, 0) + 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\"") + 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) + 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") + label_2.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + 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") + label_3.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + sizer_2.Add(label_3, 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, "")) + grid_sizer_1.Add(label_4, 0, wx.ALIGN_CENTER, 0) + 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") + inpt_familia1.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + grid_sizer_1.Add(inpt_familia1, 0, wx.ALIGN_CENTER, 0) + 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") + label_5.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + grid_sizer_1.Add(label_5, 0, wx.ALIGN_CENTER, 0) + grid_sizer_1.Add(self.inpt_group, 0, wx.ALIGN_CENTER, 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") + label_6.SetFont(wx.Font(12, wx.DEFAULT, wx.NORMAL, wx.NORMAL, 0, "")) + grid_sizer_1.Add(label_6, 0, wx.ALIGN_CENTER, 0) + grid_sizer_1.Add(self.inpt_zachetka, 0, wx.ALIGN_CENTER, 0) + sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0) + 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) + sizer_2.Add(grid_sizer_2, 1, wx.EXPAND, 0) + self.panel_1.SetSizer(sizer_2) + sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) + self.SetSizer(sizer_1) self.Layout() - self.btn_page2.Bind(wx.EVT_BUTTON, self.go_page2) + # end wxGlade def empty_pole(self): dlg = wx.MessageDialog(self, 'Не все поля заполнены. Заполните все поля перед продолжением', 'Ошибка', wx.OK) val = dlg.ShowModal() if val == wx.ID_OK: dlg.Destroy() - def go_page2(self, event): name = self.inpt_name.GetValue() @@ -114,23 +118,21 @@ class MainFramePanel(wx.Panel): new_session.add(student) new_session.commit() + self.frame.Destroy() SecondPage.SecondPage.OnInit(SecondPage) -class MainFrame(wx.Frame): - 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) + # todo Перенести весь функционал из main.py - 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) - panel = MainFramePanel(self) +# end of class MyApp if __name__ == "__main__": - app = wx.App(False) - frame = MainFrame(None) - frame.Center() - frame.Show() + app = MyApp(0) app.MainLoop() -