From 129f6b6d633e5b9a760f1051f016600002515c3f Mon Sep 17 00:00:00 2001 From: danamir Date: Wed, 23 Jun 2021 07:22:38 +0300 Subject: [PATCH] add sources files --- db/odd.db | Bin 16384 -> 16384 bytes gui/SecondPage.py | 206 ++++++++++++----------- gui/page3.py | 8 +- img/bad.png | Bin 0 -> 20922 bytes img/{perekr-4.jpg => perekr4.jpg} | Bin main.py | 27 ++- src/page1.wxg | 227 +++++++++++++++++++++++++ src/page1.wxg.bak | 226 +++++++++++++++++++++++++ src/second_page.py | 130 +++++++++++++++ src/second_page.py.bak | 134 +++++++++++++++ src/second_page.wxg.bak | 172 +++++++++++++++++++ src/second_page1.wxg | 26 +-- src/second_page1.wxg.bak | 269 ++++++++++++++++++++++++++++++ 13 files changed, 1294 insertions(+), 131 deletions(-) create mode 100644 img/bad.png rename img/{perekr-4.jpg => perekr4.jpg} (100%) create mode 100644 src/page1.wxg create mode 100644 src/page1.wxg.bak create mode 100644 src/second_page.py create mode 100644 src/second_page.py.bak create mode 100644 src/second_page.wxg.bak create mode 100644 src/second_page1.wxg.bak diff --git a/db/odd.db b/db/odd.db index ca32ec9aef533124ae429b52ae4c17b14a515a15..947011836f9ae7dd2560a29035f9d3c97112b8b1 100644 GIT binary patch delta 57 zcmZo@U~Fh$oFL7}K2gS*k$q#r5`G>Q{<94HU-_T&-{wENSx{gvKOYYZD}$&YqoI+4 Np`ju7=G*eB3INhf4;ugg delta 40 wcmZo@U~Fh$oFL7}Hc`fzk!@qb5`Hdb{@V=vU-_T&-`*^!aF&1bZFyA%0QfEp{Qv*} diff --git a/gui/SecondPage.py b/gui/SecondPage.py index a0a2150..519d737 100644 --- a/gui/SecondPage.py +++ b/gui/SecondPage.py @@ -1,26 +1,48 @@ import wx import random -import os import controller +import os +import logging +import platform -class SeconPageFrame(wx.Frame): +class SecondPageFrame(wx.Frame): + #Логирование + #срез 18 def __init__(self, *args, **kwds): - # begin wxGlade: SeconPageFrame.__init__ + + logging.basicConfig(filename="..\\app.log", + filemode='a', + format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', + datefmt='%H:%M:%S', + level=logging.DEBUG) + + logging.info("second page runing") + kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE wx.Frame.__init__(self, *args, **kwds) - self.SetSize((800, 600)) + self.SetSize((600, 800)) self.panel_1 = wx.Panel(self, wx.ID_ANY) - #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"Т-образный") - self.text_ctrl_1 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "", style = wx.TE_PROCESS_ENTER) - self.text_ctrl_2 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "", style = wx.TE_PROCESS_ENTER) - self.text_ctrl_1.Bind(wx.EVT_TEXT_ENTER, self.proverka_vvoda) - self.text_ctrl_2.Bind(wx.EVT_TEXT_ENTER, self.proverka_vvoda) - self.radio_btn_2.SetValue(True) + + + # self.panel_1.SetBackgroundColour(self.color) + self.radio_krest = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Крестообразный") + self.radio_t_obr = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Т-образный") + self.shir_horiz = wx.TextCtrl(self.panel_1, wx.ID_ANY, "", style=wx.TE_PROCESS_ENTER) + self.shir_vert = wx.TextCtrl(self.panel_1, wx.ID_ANY, "", style=wx.TE_PROCESS_ENTER) + self.radio_krest.SetValue(True) + + self.shir_horiz.Bind(wx.EVT_TEXT_ENTER, self.proverka_vvoda) + self.shir_vert.Bind(wx.EVT_TEXT_ENTER, self.proverka_vvoda) + + + self.runPath = os.path.abspath(__file__) + print(self.runPath) + if platform.system() == "Windows": + self.imgPath = "..\\img\\" + self.__set_properties() self.__do_layout() @@ -29,10 +51,10 @@ class SeconPageFrame(wx.Frame): def scale_bitmap(self, bitmap, width, height): self.w = width self.h = height - image = wx.Image(bitmap) - image = image.Scale(self.w, self.h, wx.IMAGE_QUALITY_HIGH) - result = wx.Bitmap(image) - return result + self.image = wx.Image(bitmap) + self.image = self.image.Scale(self.w, self.h, wx.IMAGE_QUALITY_HIGH) + self.result = wx.Bitmap(self.image) + return self.result def __set_properties(self): # begin wxGlade: SeconPageFrame.__set_properties @@ -41,94 +63,90 @@ class SeconPageFrame(wx.Frame): self.color = controller.setBacgroundColor() self.SetBackgroundColour(self.color) self.btnColor = controller.setBckgroundButtonColor() - #self.btn2.SetBackgroundColour(self.btnColor) + # self.btn2.SetBackgroundColour(self.btnColor) def __do_layout(self): - # begin wxGlade: SeconPageFrame.__do_layout - sizer_1 = wx.BoxSizer(wx.VERTICAL) - sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, "sizer_2"), wx.VERTICAL) - grid_sizer_2 = wx.FlexGridSizer(1, 6, 0, 0) - grid_sizer_3 = wx.GridSizer(0, 2, 0, 0) - grid_sizer_1 = wx.GridSizer(0, 4, 0, 0) - 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) + print(self.runPath) + print(self.imgPath) + print(platform.system()) - 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) + self.sizer_1 = wx.BoxSizer(wx.VERTICAL) + self.sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, ""), wx.VERTICAL) + self.grid_sizer_2 = wx.FlexGridSizer(1, 6, 0, 0) + self.grid_sizer_3 = wx.GridSizer(0, 2, 0, 0) + self.grid_sizer_1 = wx.GridSizer(0, 4, 0, 0) + + self.label_ish_dan = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета") + self.label_ish_dan.SetFont(wx.Font(18, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, "")) + self.sizer_2.Add(self.label_ish_dan, 0, wx.ALIGN_CENTER | wx.ALL, 10) + + self.label_kat_horiz = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Горизональной улицы") + self.grid_sizer_1.Add(self.label_kat_horiz, 0, wx.ALIGN_CENTER | wx.ALL, 10) 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) + self.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) + self.label_kat_vert = wx.StaticText(self.panel_1, wx.ID_ANY, u"Категория \n Вертикальной улицы") + self.grid_sizer_1.Add(self.label_kat_vert, 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) + self.katVertical = wx.StaticText(self.panel_1, wx.ID_ANY, "") + self.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) + self.label_11 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Горизонтальной улицы") + self.grid_sizer_1.Add(self.label_11, 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) + self.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) + self.label_13 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Количество полос \n Вертикальной улицы") + self.grid_sizer_1.Add(self.label_13, 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) + self.grid_sizer_1.Add(self.kolvoPolosVert, 0, wx.ALIGN_CENTER, 0) + self.sizer_2.Add(self.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.label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения") + self.label_18.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, "")) + self.sizer_2.Add(self.label_18, 0, wx.ALL, 9) + self.grid_sizer_3.Add(self.radio_krest, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) + self.grid_sizer_3.Add(self.radio_t_obr, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) - self.imgor = "..\\img\\perekr-4.jpg" - self.img = self.scale_bitmap(self.imgor, 150, 150) - self.bitmap_4 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY), style=wx.BORDER_NONE) - self.bitmap_4.SetBitmap(wx.Bitmap(self.img)) - grid_sizer_3.Add(self.bitmap_4, 0, wx.ALIGN_CENTER, 0) - 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) + self.label_15 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Необходимо расчитать:") + self.label_15.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, "")) + self.sizer_2.Add(self.label_15, 0, 0, 0) + self.label_16 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части \n Горизонтальной улицы") + self.grid_sizer_2.Add(self.label_16, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 0) + self.grid_sizer_2.Add(self.shir_horiz, 0, wx.ALIGN_CENTER, 0) - label_15 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Необходимо расчитать:") - label_15.SetFont(wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.BOLD, 0, "")) - sizer_2.Add(label_15, 0, 0, 0) - label_16 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части \n Горизонтальной улицы") - 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) + self.bitmap_2 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY)) + self.bitmap_2.Hide() + self.grid_sizer_2.Add(self.bitmap_2, 0, 0, 0) - 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) + self.label_17 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части \n Вертикальной улицы") + self.grid_sizer_2.Add(self.label_17, 0, 0, 0) + self.grid_sizer_2.Add(self.shir_vert, 0, wx.ALIGN_CENTER, 0) - label_17 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части \n Вертикальной улицы") - 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(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) + self.bitmap_3 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap(100, 100, wx.BITMAP_TYPE_ANY)) + self.grid_sizer_2.Add(self.bitmap_3, 0, 0, 0) + self.sizer_2.Add(self.grid_sizer_2, 1, wx.EXPAND, 0) self.button_1 = wx.Button(self.panel_1, wx.ID_ANY, "Далее") - sizer_2.Add(self.button_1, 0, wx.ALIGN_RIGHT, 0) + self.sizer_2.Add(self.button_1, 0, wx.ALIGN_RIGHT, 0) - self.panel_1.SetSizer(sizer_2) - sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) - self.SetSizer(sizer_1) + self.panel_1.SetSizer(self.sizer_2) + self.sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) + self.SetSizer(self.sizer_1) self.Layout() def good(self): - self.img1 = "../img/123.jpg" + self.img1 = self.imgPath + "123.jpg" self.img4 = self.scale_bitmap(self.img1, 50, 50) self.bitmap_2.SetBitmap(wx.Bitmap(self.img1)) self.bitmap_2.Show() self.Refresh() def bad(self): - self.img2 = "../img/bad.jpg" - self.img3 = self.scale_bitmap(self.img2, 70, 50) + self.img1 = self.imgPath + "bad.jpg" + self.img3 = self.scale_bitmap(self.img1, 70, 50) self.bitmap_3.SetBitmap(wx.Bitmap(self.img3)) self.bitmap_3.Show() self.Refresh() @@ -145,15 +163,15 @@ class SeconPageFrame(wx.Frame): print(self.pr_hor) print(self.pr_Vert) - if len(self.text_ctrl_1.GetValue()) > 0: - if str(self.pr_hor) == self.text_ctrl_1.GetValue(): + if len(self.shir_horiz.GetValue()) > 0: + if str(self.pr_hor) == self.shir_horiz.GetValue(): self.file = open("123", "w").close() self.file = open("123", "w") - self.file.writelines(self.text_ctrl_1.GetValue() + "\n") + self.file.writelines(self.shir_horiz.GetValue() + "\n") self.file.close() print("good") self.bitmap_2.Hide() - self.img1 = "../img/123.jpg" + self.img1 = self.imgPath + "123.jpg" self.img4 = self.scale_bitmap(self.img1, 50, 50) self.bitmap_2.SetBitmap(wx.Bitmap(self.img4)) self.bitmap_2.Show() @@ -161,18 +179,18 @@ class SeconPageFrame(wx.Frame): else: print("bad") self.bitmap_2.Hide() - self.img2 = "../img/bad.jpg" - self.img3 = self.scale_bitmap(self.img2, 70, 50) + self.img1 = self.imgPath + "bad.jpg" + self.img3 = self.scale_bitmap(self.img1, 70, 50) self.bitmap_2.SetBitmap(wx.Bitmap(self.img3)) self.bitmap_2.Show() - self.text_ctrl_1.SetValue(str(self.pr_hor)) + self.shir_horiz.SetValue(str(self.pr_hor)) self.Refresh() - if len(self.text_ctrl_2.GetValue()) > 0: - if str(self.pr_Vert) == self.text_ctrl_2.GetValue() and len(self.text_ctrl_2.GetValue()) > 0: + if len(self.shir_vert.GetValue()) > 0: + if str(self.pr_Vert) == self.shir_vert.GetValue() and len(self.shir_vert.GetValue()) > 0: print("good") self.bitmap_3.Hide() - self.img1 = "../img/123.jpg" + self.img1 = self.imgPath + "123.jpg" self.img4 = self.scale_bitmap(self.img1, 50, 50) self.bitmap_3.SetBitmap(wx.Bitmap(self.img4)) self.bitmap_3.Show() @@ -180,18 +198,18 @@ class SeconPageFrame(wx.Frame): else: print("Bad") self.bitmap_3.Hide() - self.img2 = "../img/bad.jpg" - self.img3 = self.scale_bitmap(self.img2, 70, 50) + self.img1 = self.imgPath + "bad.jpg" + self.img3 = self.scale_bitmap(self.img1, 70, 50) self.bitmap_3.SetBitmap(wx.Bitmap(self.img3)) self.bitmap_3.Show() - self.text_ctrl_2.SetValue(str(self.pr_Vert)) + self.shir_vert.SetValue(str(self.pr_Vert)) self.Refresh() def proverka_radiobtn(self): self.s = 1 - print(self.radio_btn_2.GetValue()) - print(self.radio_btn_3.GetValue()) - if self.radio_btn_2.GetValue() == self.radio_btn_2.GetValue(): + print(self.radio_krest.GetValue()) + print(self.radio_t_obr.GetValue()) + if self.radio_krest.GetValue() == self.radio_krest.GetValue(): self.error_radio_btn() self.s = 0 return self.s @@ -201,13 +219,15 @@ class SeconPageFrame(wx.Frame): page3.Page3.OnInit(page3) self.Destroy() + class SecondPage(wx.App): def OnInit(self): - self.frame = SeconPageFrame(None, wx.ID_ANY, "") + self.frame = SecondPageFrame(None, wx.ID_ANY) self.frame.Show() + self.frame.Center() + return True -# end of class SecondPage if __name__ == "__main__": SeconPage = SecondPage(0) diff --git a/gui/page3.py b/gui/page3.py index 97039ec..ba0a271 100755 --- a/gui/page3.py +++ b/gui/page3.py @@ -618,9 +618,11 @@ class Page3Frame(wx.Frame): self.text_ctrl_1.SetValue(str(self.s1)) self.Refresh() def gopage4(self, event): - from gui import page4 - page4.MyApp.OnInit(page4) - self.Destroy() + #from gui import page4 + #page4.MyApp.OnInit(page4) + #self.Destroy() + pass + class Page3(wx.App): diff --git a/img/bad.png b/img/bad.png new file mode 100644 index 0000000000000000000000000000000000000000..9783ba7f61c7d4053a91b130474a7e085a5885de GIT binary patch literal 20922 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 c1lCRqYsM + + + + + 800, 600 + frame + + + wxVERTICAL + + + 0 + wxEXPAND + + + wxVERTICAL + + + 20 + wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER + + + 14 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 5 + wxALL + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 2 + 0 + 0 + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + + 0 + wxEXPAND + + 0 + 2 + 0 + 0 + + + 0 + wxALIGN_BOTTOM + + 100, 50 + + + + + + 0 + wxALIGN_RIGHT|wxALIGN_BOTTOM + + 100, 50 + + + + + + + + + + + diff --git a/src/page1.wxg.bak b/src/page1.wxg.bak new file mode 100644 index 0000000..22835d0 --- /dev/null +++ b/src/page1.wxg.bak @@ -0,0 +1,226 @@ + + + + + + 1200, 600 + frame + + + wxVERTICAL + + + 0 + wxEXPAND + + + wxVERTICAL + + + 20 + wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER + + + 14 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 2 + 0 + 0 + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + 0 + wxALIGN_CENTER + + + 12 + default + + normal + 0 + + + + + + + + + 0 + wxEXPAND + + 0 + 2 + 0 + 0 + + + 0 + wxALIGN_BOTTOM + + 100, 50 + + + + + + 0 + wxALIGN_RIGHT|wxALIGN_BOTTOM + + 100, 50 + + + + + + + + + + + diff --git a/src/second_page.py b/src/second_page.py new file mode 100644 index 0000000..a87c300 --- /dev/null +++ b/src/second_page.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +# +# generated by wxGlade 1.1.0pre on Sun Jun 6 15:00:40 2021 +# + +import wx + +# begin wxGlade: dependencies +# end wxGlade + +# begin wxGlade: extracode +# end wxGlade + + +class SeconPageFrame(wx.Frame): + def __init__(self, *args, **kwds): + # begin wxGlade: SeconPageFrame.__init__ + kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE + wx.Frame.__init__(self, *args, **kwds) + self.SetSize((800, 780)) + self.SetTitle("frame") + + sizer_1 = wx.BoxSizer(wx.VERTICAL) + + self.panel_1 = wx.Panel(self, wx.ID_ANY) + sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) + + sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, "sizer_2"), wx.VERTICAL) + + label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета\n") + label_1.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 0) + + grid_sizer_1 = wx.GridSizer(0, 4, 0, 0) + sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0) + + 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_HORIZONTAL) + grid_sizer_1.Add(label_8, 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) + + 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_HORIZONTAL) + grid_sizer_1.Add(label_12, 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) + + label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения") + label_18.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_18, 0, wx.ALL, 9) + + grid_sizer_3 = wx.GridSizer(0, 2, 0, 0) + sizer_2.Add(grid_sizer_3, 1, wx.EXPAND, 0) + + self.radio_btn_2 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Крестооборазный\n") + grid_sizer_3.Add(self.radio_btn_2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) + + self.radio_btn_3 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Т-образный") + grid_sizer_3.Add(self.radio_btn_3, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) + + bitmap_4 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\perekr4.jpg", wx.BITMAP_TYPE_ANY), style=wx.BORDER_NONE) + grid_sizer_3.Add(bitmap_4, 0, wx.ALIGN_CENTER, 0) + + bitmap_5 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\perekr-t.jpg", wx.BITMAP_TYPE_ANY), style=wx.BORDER_NONE) + grid_sizer_3.Add(bitmap_5, 0, wx.ALIGN_CENTER, 0) + + label_15 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Необходимо расчитать:") + label_15.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_15, 0, wx.ALL, 0) + + grid_sizer_2 = wx.FlexGridSizer(1, 9, 0, 0) + sizer_2.Add(grid_sizer_2, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 0) + + label_16 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части\nГоризонтальной улицы") + grid_sizer_2.Add(label_16, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 0) + + self.text_ctrl_1 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "") + 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("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\123.jpg", wx.BITMAP_TYPE_ANY)) + bitmap_2.Hide() + grid_sizer_2.Add(bitmap_2, 0, 0, 0) + + label_17 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части\nВертикальной улицы") + grid_sizer_2.Add(label_17, 0, 0, 0) + + self.text_ctrl_2 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "") + 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("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\123.jpg", wx.BITMAP_TYPE_ANY)) + grid_sizer_2.Add(bitmap_3, 0, 0, 0) + + self.button_1 = wx.Button(self.panel_1, wx.ID_ANY, "button_1") + sizer_2.Add(self.button_1, 0, wx.ALIGN_RIGHT, 0) + + self.panel_1.SetSizer(sizer_2) + + self.SetSizer(sizer_1) + + self.Layout() + # end wxGlade + +# end of class SeconPageFrame + +class SecondPage(wx.App): + def OnInit(self): + self.frame = SeconPageFrame(None, wx.ID_ANY, "") + self.SetTopWindow(self.frame) + self.frame.Show() + return True + +# end of class SecondPage + +if __name__ == "__main__": + SeconPage = SecondPage(0) + SeconPage.MainLoop() diff --git a/src/second_page.py.bak b/src/second_page.py.bak new file mode 100644 index 0000000..6aba0c0 --- /dev/null +++ b/src/second_page.py.bak @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 +# -*- coding: UTF-8 -*- +# +# generated by wxGlade 1.1.0pre on Sun Jun 6 15:00:40 2021 +# + +import wx + +# begin wxGlade: dependencies +# end wxGlade + +# begin wxGlade: extracode +# end wxGlade + + +class SeconPageFrame(wx.Frame): + def __init__(self, *args, **kwds): + # begin wxGlade: SeconPageFrame.__init__ + kwds["style"] = kwds.get("style", 0) | wx.DEFAULT_FRAME_STYLE + wx.Frame.__init__(self, *args, **kwds) + self.SetSize((800, 780)) + self.SetTitle("frame") + + sizer_1 = wx.BoxSizer(wx.VERTICAL) + + self.panel_1 = wx.Panel(self, wx.ID_ANY) + sizer_1.Add(self.panel_1, 1, wx.EXPAND, 0) + + sizer_2 = wx.StaticBoxSizer(wx.StaticBox(self.panel_1, wx.ID_ANY, "sizer_2"), wx.VERTICAL) + + label_1 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Исходные данные для расчета\n") + label_1.SetFont(wx.Font(18, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_1, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 0) + + grid_sizer_1 = wx.GridSizer(0, 4, 0, 0) + sizer_2.Add(grid_sizer_1, 1, wx.EXPAND, 0) + + 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_HORIZONTAL) + grid_sizer_1.Add(label_8, 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) + + 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_HORIZONTAL) + grid_sizer_1.Add(label_12, 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) + + label_18 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Выберите тип пересечения") + label_18.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_18, 0, wx.ALL, 9) + + grid_sizer_3 = wx.GridSizer(0, 2, 0, 0) + sizer_2.Add(grid_sizer_3, 1, wx.EXPAND, 0) + + self.radio_btn_2 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Крестооборазный\n") + grid_sizer_3.Add(self.radio_btn_2, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) + + self.radio_btn_3 = wx.RadioButton(self.panel_1, wx.ID_ANY, u"Т-образный") + grid_sizer_3.Add(self.radio_btn_3, 0, wx.ALIGN_CENTER_HORIZONTAL, 0) + + bitmap_4 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\perekr4.jpg", wx.BITMAP_TYPE_ANY), style=wx.BORDER_NONE) + grid_sizer_3.Add(bitmap_4, 0, wx.ALIGN_CENTER, 0) + + bitmap_5 = wx.StaticBitmap(self.panel_1, wx.ID_ANY, wx.Bitmap("D:\\Programming\\PythonProjects\\odd-perekrestok\\img\\perekr-t.png", wx.BITMAP_TYPE_ANY), style=wx.BORDER_NONE) + grid_sizer_3.Add(bitmap_5, 0, wx.ALIGN_CENTER, 0) + + label_15 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Необходимо расчитать:") + label_15.SetFont(wx.Font(14, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, 0, "")) + sizer_2.Add(label_15, 0, wx.ALL, 0) + + grid_sizer_2 = wx.FlexGridSizer(1, 9, 0, 0) + sizer_2.Add(grid_sizer_2, 0, wx.ALIGN_CENTER_HORIZONTAL | wx.ALL, 0) + + label_16 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части\nГоризонтальной улицы") + grid_sizer_2.Add(label_16, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT | wx.RIGHT, 0) + + self.text_ctrl_1 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "") + 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/good.jpg", wx.BITMAP_TYPE_ANY)) + bitmap_2.Hide() + grid_sizer_2.Add(bitmap_2, 0, 0, 0) + + grid_sizer_2.Add((20, 20), 0, 0, 0) + + label_17 = wx.StaticText(self.panel_1, wx.ID_ANY, u"Ширину проезжей части\nВертикальной улицы") + grid_sizer_2.Add(label_17, 0, 0, 0) + + self.text_ctrl_2 = wx.TextCtrl(self.panel_1, wx.ID_ANY, "") + 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/good.jpg", wx.BITMAP_TYPE_ANY)) + grid_sizer_2.Add(bitmap_3, 0, 0, 0) + + grid_sizer_2.Add((20, 20), 0, 0, 0) + + self.button_1 = wx.Button(self.panel_1, wx.ID_ANY, "button_1") + sizer_2.Add(self.button_1, 0, wx.ALIGN_RIGHT, 0) + + self.panel_1.SetSizer(sizer_2) + + self.SetSizer(sizer_1) + + self.Layout() + # end wxGlade + +# end of class SeconPageFrame + +class SecondPage(wx.App): + def OnInit(self): + self.frame = SeconPageFrame(None, wx.ID_ANY, "") + self.SetTopWindow(self.frame) + self.frame.Show() + return True + +# end of class SecondPage + +if __name__ == "__main__": + SeconPage = SecondPage(0) + SeconPage.MainLoop() diff --git a/src/second_page.wxg.bak b/src/second_page.wxg.bak new file mode 100644 index 0000000..b82420f --- /dev/null +++ b/src/second_page.wxg.bak @@ -0,0 +1,172 @@ + + + + + + 658, 331 + frame + + + wxVERTICAL + + + 0 + wxALIGN_CENTER_HORIZONTAL + + + 16 + default + + bold + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 4 + 0 + 0 + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + + 0 + + + 14 + default + + bold + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 3 + 0 + 0 + + + 0 + wxLEFT|wxRIGHT|wxALIGN_CENTER_VERTICAL + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + + 1 + /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg + + + + + 0 + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + + /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg + + + + + + + diff --git a/src/second_page1.wxg b/src/second_page1.wxg index 35b7cc5..952086c 100644 --- a/src/second_page1.wxg +++ b/src/second_page1.wxg @@ -1,5 +1,5 @@ - + @@ -152,7 +152,7 @@ wxALIGN_CENTER - D:\Programming\PythonProjects\odd-perekrestok\img\perekr-4.jpg + D:\Programming\PythonProjects\odd-perekrestok\img\perekr4.jpg @@ -161,7 +161,7 @@ wxALIGN_CENTER - D:\Programming\PythonProjects\odd-perekrestok\img\perekr-t.png + D:\Programming\PythonProjects\odd-perekrestok\img\perekr-t.jpg @@ -211,15 +211,7 @@ 0 1 - /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg - - - - - 0 - - 20 - 20 + D:\Programming\PythonProjects\odd-perekrestok\img\123.jpg @@ -240,15 +232,7 @@ 0 - /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg - - - - - 0 - - 20 - 20 + D:\Programming\PythonProjects\odd-perekrestok\img\123.jpg diff --git a/src/second_page1.wxg.bak b/src/second_page1.wxg.bak new file mode 100644 index 0000000..35b7cc5 --- /dev/null +++ b/src/second_page1.wxg.bak @@ -0,0 +1,269 @@ + + + + + + 800, 780 + frame + + + wxVERTICAL + + + 0 + wxEXPAND + + + wxVERTICAL + + + + 0 + wxALL|wxALIGN_CENTER_HORIZONTAL + + + 18 + default + + bold + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 4 + 0 + 0 + + + 10 + wxALL|wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + 0 + wxALIGN_CENTER + + + + + + + + 9 + wxALL + + + 14 + default + + bold + 0 + + + + + + + + 0 + wxEXPAND + + 0 + 2 + 0 + 0 + + + 0 + wxALIGN_CENTER_HORIZONTAL + + + + + + + 0 + wxALIGN_CENTER_HORIZONTAL + + + + + + + 0 + wxALIGN_CENTER + + + D:\Programming\PythonProjects\odd-perekrestok\img\perekr-4.jpg + + + + + 0 + wxALIGN_CENTER + + + D:\Programming\PythonProjects\odd-perekrestok\img\perekr-t.png + + + + + + + 0 + wxALL + + + 14 + default + + bold + 0 + + + + + + + + 0 + wxALL|wxALIGN_CENTER_HORIZONTAL + + 1 + 9 + 0 + 0 + + + 0 + wxLEFT|wxRIGHT|wxALIGN_CENTER_VERTICAL + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + + 1 + /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg + + + + + 0 + + 20 + 20 + + + + + 0 + + + + + + + 0 + wxALIGN_CENTER + + + + + + 0 + + /Users/danamir/PycharmProjects/odd-perekrestok/img/good.jpg + + + + + 0 + + 20 + 20 + + + + + + + 0 + wxALIGN_RIGHT + + + + + + + + + +