Форум сайта python.su
import wx from wx.lib.buttons import GenButton class MyFrame(wx.Frame): def __init__(self): super().__init__(None, wx.ID_ANY, size=(x, y), style=wx.CAPTION | wx.MINIMIZE_BOX | wx.CLOSE_BOX) # ----------------- Подразделение на панели ----------------------------- self.Dashboard = wx.Panel(self, wx.ID_ANY, size=(x, y * .07)) self.PanelContacts = wx.Panel(self, wx.ID_ANY, size=(x * .244, y * .87), pos=(0, y * .07)) self.PanelMessages = wx.Panel(self, wx.ID_ANY, size=(x * .75, y * .66), pos=(x * .25, y * .07)) self.PanelSend = wx.Panel(self, wx.ID_ANY, size=(x * .75, y * .2), pos=(x * .25, y * .74)) # ---------------------- Создание кнопок -------------------------------- self.BtnLogin = GenButton(self.Dashboard, wx.ID_ANY, label='Вход', size=(wx.Button.GetDefaultSize()[0] * .55, wx.Button.GetDefaultSize()[1]), pos=(x - wx.Button.GetDefaultSize()[0], y * .015)) # -------------------------- Марафет ------------------------------------ self.BtnLogin.SetBackgroundColour('#848484') self.BtnLogin.SetForegroundColour('White') self.Dashboard.SetBackgroundColour('#848484') self.SetOwnBackgroundColour('#686868') self.Bind(wx.EVT_CLOSE, lambda event: App.ExitMainLoop()) self.BtnLogin.Bind(wx.EVT_MOUSE_CAPTURE_CHANGED, lambda event: DialogLogin()) class DialogLogin(wx.Dialog): def __init__(self): super().__init__(None, wx.ID_ANY, size=(x / 3, y / 3), title='Вход') # ------------------- Создание виджетов --------------------------------- self.LabelLogin = wx.StaticText(self, wx.ID_ANY, label='Логин:') self.LabelPassword = wx.StaticText(self, wx.ID_ANY, label='Пароль:') self.EntryLogin = wx.TextCtrl(self, wx.ID_ANY, style=wx.BORDER) self.EntryPassword = wx.TextCtrl(self, wx.ID_ANY, style=wx.BORDER | wx.TE_PASSWORD) self.BtnOk = GenButton(self, wx.ID_ANY, label='Вход') self.BtnRegistration = GenButton(self, wx.ID_ANY, label='Регистрация') #-------------------- Размещение виджетов ------------------------------- self.BoxSizer = wx.BoxSizer(wx.VERTICAL) self.BoxSizer.Add(self.LabelLogin, flag=wx.LEFT, border=x / 20) self.BoxSizer.Add(self.EntryLogin, flag=wx.LEFT, border=x / 20) self.BoxSizer.Add(self.LabelPassword, flag=wx.LEFT, border=x / 20) self.BoxSizer.Add(self.EntryPassword, flag=wx.LEFT, border=x / 20) self.BoxSizer.Add(self.BtnOk, flag=wx.TOP | wx.ALIGN_CENTER, border=y / 60) self.BoxSizer.Add(self.BtnRegistration, flag=wx.TOP | wx.ALIGN_CENTER, border=y / 60) self.SetSizer(self.BoxSizer) # ------------------------Марафет --------------------------------------- self.LabelLogin.SetForegroundColour('White') self.LabelPassword.SetForegroundColour('White') self.EntryLogin.SetForegroundColour('White') self.EntryPassword.SetForegroundColour('White') self.BtnOk.SetForegroundColour('White') self.BtnRegistration.SetForegroundColour('White') self.EntryLogin.SetBackgroundColour('#848484') self.EntryPassword.SetBackgroundColour('#848484') self.BtnOk.SetBackgroundColour('#848484') self.BtnRegistration.SetBackgroundColour('#848484') self.SetBackgroundColour('#848484') self.Centre() self.Show() if __name__ == '__main__': App = wx.App() x = wx.DisplaySize()[0] * .66 y = wx.DisplaySize()[1] * .66 frame = MyFrame() frame.Centre() frame.Show() App.MainLoop()
Офлайн
BOBAHself.BtnLogin = GenButton(self.Dashboard, wx.ID_ANY, label='Вход', size=(wx.Button.GetDefaultSize()[0] * .55, wx.Button.GetDefaultSize()[1]), pos=(x - wx.Button.GetDefaultSize()[0], y * .015))
self.BtnLogin = GenButton( self.Dashboard, wx.ID_ANY, label='Вход', size=(wx.Button.GetDefaultSize()[0] * .55, wx.Button.GetDefaultSize()[1]), pos=(x - wx.Button.GetDefaultSize()[0], y * .015))
Отредактировано py.user.next (Апрель 21, 2019 18:33:28)
Офлайн
BOBAH
Позволю себе немного перефразировать py.user.next. Это хорошо, когда код документируется, но гораздо лучше когда он само-документируется.
def _create_widgets(self): ... def _style_widgets(self): ...
SUCCESS_BG = '#848484' DANDER_BG = "#00FF00" PANEL_BG = "#BFBFBF" BORDER_BG = "#000000" class LoginDialogBox: box_width_ratio = 0.5 box_width = screen_width * box_width_ratio panel_width = box_width * 0.75 def _create_widgets(self): self.panel = wx.Panel(self, wx.ID_ANY, size=(self.panel_width, self.panel_height)) def _style_widgets(self): self.panel.SetBackgroundColour(PANEL_BG) self.delete_button.SetBackgroundColour(DANDER_BG) self.ok_button.SetBackgroundColour(SUCCESS_BG)
Отредактировано FishHook (Май 3, 2019 13:19:00)
Офлайн