# -*- coding: utf-8 -*- import wx from gui.listctrl import ListCtrl_Parser ID_BUTTON_PARSE_EVENT = wx.NewId() class FrameParser(wx.Frame): def __init__(self, parent, *args): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u'视频解析器', pos=wx.DefaultPosition, size=wx.Size(420, 460), style=wx.DEFAULT_DIALOG_STYLE) self.SetBackgroundColour(wx.Colour(240, 240, 240)) text_resolution = wx.StaticText(self, wx.ID_ANY, u"Quality:", wx.DefaultPosition, wx.DefaultSize, 0) text_resolution.Wrap(-1) self.checkbox_1 = wx.ToggleButton(self, wx.ID_ANY, u"1", wx.DefaultPosition, wx.Size(40, 20), 0) self.checkbox_2 = wx.ToggleButton(self, wx.ID_ANY, u"2", wx.DefaultPosition, wx.Size(40, 20), 0) self.checkbox_3 = wx.ToggleButton(self, wx.ID_ANY, u"3", wx.DefaultPosition, wx.Size(40, 20), 0) self.checkbox_4 = wx.ToggleButton(self, wx.ID_ANY, u"4", wx.DefaultPosition, wx.Size(40, 20), 0) self.checkbox_5 = wx.ToggleButton(self, wx.ID_ANY, u"5", wx.DefaultPosition, wx.Size(40, 20), 0) self.checkbox_6 = wx.ToggleButton(self, wx.ID_ANY, u"6", wx.DefaultPosition, wx.Size(40, 20), 0) # self.checkbox_700 = wx.CheckBox(self, wx.ID_ANY, u"600", wx.DefaultPosition, wx.DefaultSize, 0) # self.checkbox_800 = wx.CheckBox(self, wx.ID_ANY, u"600", wx.DefaultPosition, wx.DefaultSize, 0) # self.checkbox_1.SetValue(True) # self.checkbox_2.SetValue(True) # self.checkbox_3.SetValue(True) # self.checkbox_4.SetValue(True) # self.checkbox_5.SetValue(True) self.checkbox_6.SetValue(True) sizer_resolution = wx.BoxSizer(wx.HORIZONTAL) sizer_resolution.Add(text_resolution, 0, wx.ALL, 5) sizer_resolution.Add(self.checkbox_1, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) sizer_resolution.Add(self.checkbox_2, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) sizer_resolution.Add(self.checkbox_3, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) sizer_resolution.Add(self.checkbox_4, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) sizer_resolution.Add(self.checkbox_5, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) sizer_resolution.Add(self.checkbox_6, wx.EXPAND, wx.ALIGN_CENTER |wx.ALL, 0) staticline1 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) staticline2 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) staticline4 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) # staticline3 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) text_url = wx.StaticText(self, wx.ID_ANY, u"Url", wx.DefaultPosition, wx.DefaultSize, 0) text_url.Wrap(-1) self.textctrl_url = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self.button_parse = wx.Button(self, wx.ID_ANY, u"解析", wx.DefaultPosition, wx.Size(80, -1), 0) # self.button_parse.Connect(-1, -1, ID_BUTTON_PARSE_EVENT, self.button_parse_retrycounter) sizer_url = wx.BoxSizer(wx.HORIZONTAL) sizer_url.Add(text_url, 0, wx.ALIGN_CENTER | wx.ALL, 5) sizer_url.Add(self.textctrl_url, 5, wx.ALIGN_CENTER | wx.ALL, 2) sizer_url.Add(self.button_parse, 0, wx.ALIGN_CENTER | wx.ALL, 2) # ================================================================= self.listctrl_parse = ListCtrl_Parser(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT) sizer_listctrl = wx.BoxSizer(wx.VERTICAL) sizer_listctrl.Add(self.listctrl_parse, 1, wx.ALL | wx.EXPAND, 5) # ================================================================= # self.button_copyurl = wx.Button(self, wx.ID_ANY, u"复制下载链接", wx.DefaultPosition, wx.DefaultSize, 0) # self.button_godownload = wx.Button(self, wx.ID_ANY, u"下载选中项", wx.DefaultPosition, wx.DefaultSize, 0) # self.button_godownload.Enable(False) # sizer_control = wx.BoxSizer(wx.HORIZONTAL) # sizer_control.Add(self.button_copyurl, 0, wx.ALL, 5) # sizer_control.Add(self.button_godownload, 1, wx.ALIGN_RIGHT | wx.ALL, 5) # ================================================================= # text_path = wx.StaticText(self, wx.ID_ANY, u"PATH:", wx.DefaultPosition, wx.DefaultSize, 0) # text_path.Wrap(-1) # self.textctrl_path = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) # self.button_path = wx.Button(self, wx.ID_ANY, u"...", wx.DefaultPosition, wx.Size(50, -1), 0) # sizer_path = wx.BoxSizer(wx.HORIZONTAL) # sizer_path.Add(text_path, 0, wx.ALIGN_CENTER | wx.ALL, 2) # sizer_path.Add(self.textctrl_path, 1, wx.ALIGN_CENTER | wx.ALL, 2) # sizer_path.Add(self.button_path, 0, wx.ALIGN_CENTER | wx.ALL, 2) sizer_global = wx.BoxSizer(wx.VERTICAL) # sizer_global.Add(staticline1, 0, wx.EXPAND | wx.ALL, 3) sizer_global.Add(sizer_url, 0, wx.EXPAND, 3) sizer_global.Add(staticline2, 0, wx.EXPAND | wx.ALL, 3) sizer_global.Add(sizer_listctrl, 1, wx.EXPAND, 3) # sizer_global.Add(staticline3, 0, wx.EXPAND | wx.ALL, 3) # sizer_global.Add(sizer_control, 0, wx.EXPAND, 2) sizer_global.Add(staticline4, 0, wx.EXPAND | wx.ALL, 3) sizer_global.Add(sizer_resolution, 0, wx.EXPAND, 3) # sizer_global.Add(sizer_path, 0, wx.EXPAND, 0) self.menu_bar = ParserMenuBar(0) self.SetMenuBar(self.menu_bar) self.SetSizer(sizer_global) self.Layout() self.Centre(wx.BOTH) def button_parse_retrycounter(self, event): self.button_parse.SetLabelText('第 %d 次重试' % event.counter) class ParserMenuBar(wx.MenuBar): def __init__(self, style): wx.MenuBar.__init__(self, style) self.file = Menu_File() self.help = Menu_Help() self.Append(self.file, 'File') self.Append(self.help, 'Help') class Menu_File(wx.Menu): def __init__(self, *args): wx.Menu.__init__(self, *args) self.logs = None self.settings = None self.exit = None self.initMenuItems() def initMenuItems(self): self.logs = wx.MenuItem(self, wx.ID_ANY, '&Logs\tF2', wx.EmptyString, wx.ITEM_NORMAL) self.settings = wx.MenuItem(self, wx.ID_ANY, 'Settings', wx.EmptyString, wx.ITEM_NORMAL) self.exit = wx.MenuItem(self, wx.ID_ANY, 'Exit', wx.EmptyString, wx.ITEM_NORMAL) self.Append(self.logs) self.AppendSeparator() self.Append(self.settings) self.AppendSeparator() self.Append(self.exit) class Menu_Help(wx.Menu): def __init__(self, *args): wx.Menu.__init__(self, *args) self.update = None self.about = None self.initMenuItems() def initMenuItems(self): self.about = wx.MenuItem(self, wx.ID_ANY, '&About\tF1', wx.EmptyString, wx.ITEM_NORMAL) self.Append(self.about) self.AppendSeparator() self.update = wx.MenuItem(self, wx.ID_ANY, 'Update Cores', wx.EmptyString, wx.ITEM_NORMAL) self.Append(self.update) class ButtonParseRetryEvent(wx.PyEvent): def __init__(self, counter): wx.PyEvent.__init__(self) self.SetEventType(ID_BUTTON_PARSE_EVENT) self.counter = counter # app = wx.App() # frame_main = FrameParser(None) # wx.TextEntryDialog(frame_main, 'a', 'as').ShowModal() # frame_main.Show() # app.MainLoop()