def __init__(self, parent): wx.Panel.__init__(self, parent, -1, style=wx.TAB_TRAVERSAL) self.editing = False self.listBook = wx.Listbook(self, -1) self.listBook.Bind(wx.EVT_LISTBOOK_PAGE_CHANGED, self.OnListbookPageChanged) self._init_controls() self._init_sizers() self.panels = [] self.panel_names = [] for mod in pos.modules.all(): try: panels = mod.config_panels() except AttributeError: continue #panels = importlib.import_module('pos.modules.'+mod.name+'.panels') #if panels is not None and hasattr(panels, 'ModuleConfigPanel'): for panel_class in panels: panel = panel_class(self.listBook) self.panels.append(panel) self.panel_names.append(mod.base_name) if hasattr(panel, 'label') and panel.label: self.listBook.AddPage(panel, panel.label) else: self.listBook.AddPage(panel, '[%s]' % (mod.name,)) panel.TransferDataToWindow() self.enableEditing(False)
def addControls(self, parent): self.tabs = wx.Listbook(parent, -1) # Image list image_list = wx.ImageList(24, 24) for imgname in self.imagefiles: bmp = getattr(images, imgname).GetBitmap() image_list.Add(bmp) self.tabs.AssignImageList(image_list) # Create settings pages generalPage = GeneralPanel(self.tabs) speechPage = SpeechPanel(self.tabs) readingPage = ReadingPanel(self.tabs) # Add tabs # Translators: the label of a page in the settings dialog self.tabs.AddPage(generalPage, _("General"), select=True, imageId=0) # Translators: the label of a page in the settings dialog self.tabs.AddPage(speechPage, _("Speech"), imageId=1) # Translators: the label of a page in the settings dialog self.tabs.AddPage(readingPage, _("Reading"), imageId=2) # Finalize self.SetButtonSizer(self.createButtonsSizer()) # Event handlers self.Bind(wx.EVT_BUTTON, self.onSubmit, id=wx.ID_OK) self.Bind(wx.EVT_BUTTON, self.onApply, id=wx.ID_APPLY) self.Bind(wx.EVT_BUTTON, lambda e: self.Destroy(), id=wx.ID_CANCEL) # Initialize values self.reconcile_all(ReconciliationStrategies.load) self.tabs.GetListView().SetFocus()
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.SetTitle("pyfa - Preferences") i = wx.Icon(BitmapLoader.getBitmap("preferences_small", "gui")) self.SetIcon(i) mainSizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listview = self.listbook.GetListView() # self.listview.SetMinSize((500, -1)) # self.listview.SetSize((500, -1)) self.imageList = wx.ImageList(32, 32) self.listbook.AssignImageList(self.imageList) mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5) self.m_staticline2 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) mainSizer.Add(self.m_staticline2, 0, wx.EXPAND, 5) btnSizer = wx.BoxSizer(wx.HORIZONTAL) btnSizer.AddStretchSpacer() self.btnOK = wx.Button(self, wx.ID_ANY, "OK", wx.DefaultPosition, wx.DefaultSize, 0) btnSizer.Add(self.btnOK, 0, wx.ALL, 5) mainSizer.Add(btnSizer, 0, wx.EXPAND, 5) self.SetSizer(mainSizer) self.Centre(wx.BOTH) for prefView in PreferenceView.views: page = wx.ScrolledWindow(self.listbook) page.SetScrollRate(15, 15) bmp = prefView.getImage() if bmp: imgID = self.imageList.Add(bmp) else: imgID = -1 prefView.populatePanel(page) self.listbook.AddPage(page, prefView.title, imageId=imgID) bestFit = self.GetBestVirtualSize() width = max(bestFit[0], 800 if "wxGTK" in wx.PlatformInfo else 650) height = max(bestFit[1], 550) self.SetSize(width, height) self.Layout() self.btnOK.Bind(wx.EVT_BUTTON, self.OnBtnOK) self.Bind(wx.EVT_CHAR_HOOK, self.kbEvent)
def __init__(self, parent, wxId, id, style): # The formatted tab area style uses another widget entirely. if style == TabArea.STYLE_FORMATTED: raise Exception('not supported here') # Create the appropriate widget. if style == TabArea.STYLE_ICON: w = wx.Listbook(parent, wxId, style=wx.LB_LEFT) w.GetListView().SetSingleStyle(wx.LC_AUTOARRANGE) elif style == TabArea.STYLE_HORIZ_ICON: w = wx.Listbook(parent, wxId, style=wx.LB_TOP) elif style == TabArea.STYLE_BASIC: w = wx.Notebook(parent, wxId) else: w = wx.Choicebook(parent, wxId, style=wx.CHB_TOP) base.Widget.__init__(self, w) self.style = style # The horizontal icon style is handled like the normal icon # style. if self.style == TabArea.STYLE_HORIZ_ICON: self.style = TabArea.STYLE_ICON # The IconTabs widget remembers its id so it can send # notifications events. self.widgetId = id # The panel map is used when figuring out the IDs of each page # when an event occurs. It contains an ordered array of # tuples: (identifier, panel). self.panelMap = [] self.tabAreas = {} if self.style == TabArea.STYLE_ICON: wx.EVT_LISTBOOK_PAGE_CHANGED(parent, wxId, self.onTabChange) # The icon style uses the icons. w.SetImageList(wg.iconManager.getImageList()) elif style == TabArea.STYLE_BASIC: wx.EVT_NOTEBOOK_PAGE_CHANGED(parent, wxId, self.onTabChange) else: wx.EVT_CHOICEBOOK_PAGE_CHANGED(parent, wxId, self.onTabChange)
def __init__(self, parent): wx.Frame.__init__(self, parent, -1, "Preferences", size=(700, 320), style=wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MAXIMIZE_BOX)) self.SetIcon(parent.GetIcon()) panel = wx.Panel(self) box = wx.BoxSizer(wx.VERTICAL) listbook = wx.Listbook(self, -1) listbook.AssignImageList(wx.ImageList(60, 1)) #self.loggerVerbosity = LoggerVerbosityPage(listbook) self.cometTandemPaths = CometAndTandemPage(listbook, parent) self.mascotServer = MascotServerPage(listbook, parent) self.reportSettingsPage = ReportSettingsPage(listbook) self.peakViewer = PeakViewerPage(listbook) self.mzResultsSettings = mzResultsSettingsPage(listbook) self.mzServerSettings = mzServerSettingsPage(listbook) #listbook.AddPage(self.loggerVerbosity, "Logger Verbosity") listbook.AddPage(self.cometTandemPaths, "Comet & Tandem Paths") listbook.AddPage(self.mascotServer, "Mascot Server") listbook.AddPage(self.reportSettingsPage, "Report Settings") listbook.AddPage(self.peakViewer, "Peak Viewer") listbook.AddPage(self.mzResultsSettings, "mzResults Settings") listbook.AddPage(self.mzServerSettings, "mzServer Settings") box.Add(listbook) okButton = wx.Button(self, -1, "OK") self.Bind(wx.EVT_BUTTON, self.setAndClose, okButton) applyButton = wx.Button(self, -1, "Apply") self.Bind(wx.EVT_BUTTON, self.justSet, applyButton) cancelButton = wx.Button(self, -1, "Cancel") self.Bind(wx.EVT_BUTTON, self.justClose, cancelButton) buttonBox = wx.BoxSizer(wx.HORIZONTAL) buttonBox.Add(okButton) buttonBox.Add(applyButton) buttonBox.Add(cancelButton) #gbs.Add(buttonBox, (7, 2), (1, 2), flag = wx.ALIGN_RIGHT) box.Add(buttonBox, flag=wx.ALIGN_RIGHT) self.SetSizerAndFit(box) self.Bind(wx.EVT_CLOSE, self.on_exit)
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.SetTitle("pyfa - Preferences") i = wx.IconFromBitmap( bitmapLoader.getBitmap("preferences_small", "icons")) self.SetIcon(i) mainSizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listbook.GetListView().SetMinSize((500, -1)) self.listbook.GetListView().SetSize((500, -1)) self.imageList = wx.ImageList(64, 64) self.listbook.SetImageList(self.imageList) mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5) self.m_staticline2 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) mainSizer.Add(self.m_staticline2, 0, wx.EXPAND, 5) btnSizer = wx.BoxSizer(wx.HORIZONTAL) btnSizer.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.btnOK = wx.Button(self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0) btnSizer.Add(self.btnOK, 0, wx.ALL, 5) mainSizer.Add(btnSizer, 0, wx.EXPAND, 5) self.SetSizer(mainSizer) self.Centre(wx.BOTH) for title, prefView in PreferenceView.views.iteritems(): page = wx.Panel(self.listbook) bmp = prefView.getImage() if bmp: imgID = self.imageList.Add(bmp) else: imgID = -1 prefView.populatePanel(page) self.listbook.AddPage(page, title, imageId=imgID) self.Fit() self.Layout() self.btnOK.Bind(wx.EVT_BUTTON, self.OnBtnOK)
def __init__(self, parent, plugins: List[Plugin]): super().__init__(parent, title='Manage Plugins', size=(900, 550)) notebook = wx.Listbook(self, style=wx.LB_LEFT) notebook.GetListView().SetFont(wx.Font(wx.FontInfo(10))) notebook.GetListView().SetColumnWidth(0, 100) sizer = wx.BoxSizer() sizer.Add(notebook, proportion=1, flag=wx.EXPAND) for plugin in plugins: page = PluginPage(notebook, plugin) notebook.AddPage(page, text=plugin.metadata.name) self.SetSizer(sizer)
def addControls(self, parent): self.tabs = wx.Listbook(parent, -1) self.addPanels() # Finalize self.SetButtonSizer(self.createButtonsSizer()) # Event handlers self.Bind(wx.EVT_BUTTON, self.onSubmit, id=wx.ID_OK) self.Bind(wx.EVT_BUTTON, self.onApply, id=wx.ID_APPLY) self.Bind(wx.EVT_BUTTON, lambda e: self.Destroy(), id=wx.ID_CANCEL) # Initialize values self.reconcile_all(ReconciliationStrategies.load) self.tabs.GetListView().SetFocus() # Translators: label of the settings categories list box self.tabs.GetListView().SetLabel(_("Categories"))
def __init__(self, parent=None, preferences=None, size=(400, 600), title='preferences'): wx.Dialog.__init__(self, parent, wx.ID_ANY, title=title, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER, size=size) # The logger. loggerName = __name__ + "." + self.__class__.__name__ self.logger = logging.getLogger(loggerName) self.pref = preferences # Create the dialog buttons. okButton = wx.Button(self, wx.ID_OK) cancelButton = wx.Button(self, wx.ID_CANCEL) okButton.SetDefault() # Create the client's options pane. #(curLabel, curPanel) = self.clientOptionPanels[client.mode] #self.optionsPanel = curPanel(parent=self, client=client, project=self.psyBase.project) # The main dialog sizer. sizer = wx.GridBagSizer(5, 5) #sizer.Add(self.optionsPanel, pos=(0,0), flag=wx.EXPAND|wx.ALL, border = 5) self.listbook = wx.Listbook(parent=self, id=wx.ID_ANY, style=wx.BK_LEFT) self.build_pref_listbook() sizer.Add(self.listbook, pos=(0, 0), flag=wx.ALL | wx.EXPAND, border=5) # The button sizer. btnSizer = wx.StdDialogButtonSizer() btnSizer.AddButton(okButton) btnSizer.AddButton(cancelButton) btnSizer.Realize() sizer.Add(btnSizer, pos=(1, 0), flag=wx.ALIGN_RIGHT | wx.ALL, border=5) sizer.AddGrowableRow(0) sizer.AddGrowableCol(0) self.SetSizerAndFit(sizer)
def __init__(self, radio, *a, **k): super(ChirpSettingsEdit, self).__init__(*a, **k) self._radio = radio self._settings = None sizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(sizer) self._pre_propgrid_hook(sizer) self._group_control = wx.Listbook(self, style=wx.LB_LEFT) sizer.Add(self._group_control, 1, wx.EXPAND) self._initialized = False self._group_control.Bind(wx.EVT_PAINT, self._activate)
def __init__(self, parent, title, game_controller): flags = wx.DEFAULT_FRAME_STYLE & ~(wx.RESIZE_BORDER | wx.MAXIMIZE_BOX) wx.Frame.__init__(self, parent, title=title, style=flags) sizer = wx.BoxSizer(wx.VERTICAL) notebook = doset(mac=lambda: wx.Notebook(self), windows=lambda: wx.Listbook(self)) tab_play = PlayTab(notebook, game_controller) tab_help = HelpTab(notebook) tab_customise = CustomiseTab(notebook, game_controller) tab_mod = ModTab(notebook, game_controller) tab_map = MapTab(notebook, game_controller) notebook.AddPage(tab_play, "Play") notebook.AddPage(tab_help, "Help") notebook.AddPage(tab_customise, "Customise") notebook.AddPage(tab_mod, "Mod") notebook.AddPage(tab_map, "Map") sizer.Add(notebook, 1, wx.EXPAND) sizer.SetSizeHints(self) # doesn't seem to be needed? self.SetSizer(sizer) def set_up_menu_bar(): menubar = wx.MenuBar() wx.MenuBar.MacSetCommonMenuBar(menubar) doset_only(mac=set_up_menu_bar) # TODO: If Quit on the Menu Bar is used and the engine is running, the # app gets the beachball until the engine is quat and then it quits. # Sounds like the only solution is to somehow quit Quake. def OnClose(event): if game_controller.quit(): self.Destroy() else: if event.CanVeto(): event.Veto() Warn(self, "Can't quit whilst Quake is still running.") else: self.Destroy() # has no effect as Quake still running self.Bind(wx.EVT_CLOSE, OnClose)
def __init__(self, parent, plugins: List[Plugin], plugin_dir: str): super().__init__(parent, title='Add Plugins', size=(900, 550)) notebook = wx.Listbook(self, style=wx.LB_LEFT) notebook.GetListView().SetFont(wx.Font(wx.FontInfo(10))) notebook.GetListView().SetColumnWidth(0, 125) sizer = wx.BoxSizer() sizer.Add(notebook, proportion=1, flag=wx.EXPAND) downloadpage = DownloadPluginPage(notebook, installed=plugins, plugin_dir=plugin_dir) notebook.AddPage(downloadpage, text="Find New Plugins") add_from_local = AddLocalPage(notebook, plugin_dir=plugin_dir) notebook.AddPage(add_from_local, text="Install From Local File") self.SetSizer(sizer)
def __init__(self, parent): wx.Dialog.__init__(self, parent, -1, "Settings for BioImageXD", style=wx.CAPTION | wx.STAY_ON_TOP | wx.CLOSE_BOX | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.RESIZE_BORDER | wx.DIALOG_EX_CONTEXTHELP, size=(640, 480)) self.listbook = wx.Listbook(self, -1, style=wx.LB_LEFT) self.listbook.SetSize((640, 480)) self.sizer = wx.BoxSizer(wx.VERTICAL) try: self.imagelist = wx.ImageList(32, 32) self.listbook.AssignImageList(self.imagelist) imgpath = scripting.get_icon_dir() for i in ["general.gif", "paths.gif", "performance.gif"]: icon = os.path.join(imgpath, i) bmp = wx.Bitmap(icon, wx.BITMAP_TYPE_GIF) self.imagelist.Add(bmp) except: pass self.generalPanel = GeneralSettings(self.listbook) self.pathsPanel = PathSettings(self.listbook) self.performancePanel = PerformanceSettings(self.listbook) self.listbook.AddPage(self.generalPanel, "General", imageId=0) self.listbook.AddPage(self.pathsPanel, "Paths", imageId=1) self.listbook.AddPage(self.performancePanel, "Performance", imageId=2) self.sizer.Add(self.listbook, flag=wx.EXPAND | wx.ALL) self.staticLine = wx.StaticLine(self, -1) self.sizer.Add(self.staticLine, flag=wx.EXPAND) self.buttonSizer = self.CreateButtonSizer(wx.OK | wx.CANCEL) self.sizer.Add(self.buttonSizer, 1, flag=wx.EXPAND | wx.ALL | wx.ALIGN_RIGHT) wx.EVT_BUTTON(self, wx.ID_OK, self.writeSettings) self.SetSizer(self.sizer) self.SetAutoLayout(1) self.sizer.Fit(self)
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"BSDL File Editor", pos=wx.DefaultPosition, size=wx.Size(858, 680), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) self.m_mgr = wx.aui.AuiManager() self.m_mgr.SetManagedWindow(self) self.m_mgr.SetFlags(wx.aui.AUI_MGR_DEFAULT) self.m_menubar2 = wx.MenuBar(0) self.SetMenuBar(self.m_menubar2) self.m_statusBar2 = self.CreateStatusBar(1, wx.STB_SIZEGRIP, wx.ID_ANY) self.m_auinotebook2 = wx.aui.AuiNotebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.aui.AUI_NB_DEFAULT_STYLE) self.m_mgr.AddPane( self.m_auinotebook2, wx.aui.AuiPaneInfo().Left().PinButton( True).Dock().Resizable().FloatingSize(wx.DefaultSize)) # WARNING: wxPython code generation isn't supported for this widget yet. self.m_scintilla1 = wx.Window(self) self.m_mgr.AddPane( self.m_scintilla1, wx.aui.AuiPaneInfo().Left().PinButton( True).Dock().Resizable().FloatingSize(wx.DefaultSize)) self.m_listbook1 = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.m_mgr.AddPane( self.m_listbook1, wx.aui.AuiPaneInfo().Left().PinButton( True).Dock().Resizable().FloatingSize(wx.DefaultSize)) self.m_mgr.Update() self.Centre(wx.BOTH)
def __init__(self, *args, **kwds): # begin wxGlade: pieConfigDialog.__init__ kwds["size"] = (600, 400) kwds["title"] = _('Pieberry Settings') wx.Dialog.__init__(self, *args, **kwds) self.mainsizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, -1) self.listbook.SetImageList(SettingsImageList) self.profilepanel = ProfilePanel(self.listbook, -1) self.formatpanel = FormatPanel(self.listbook, -1) self.cleanerpanel = CleanerPanel(self.listbook, -1) self.securitypanel = SecurityPanel(self.listbook, -1) self.okBt = wx.Button(self, wx.ID_OK, "Ok") self.cancelBt = wx.Button(self, wx.ID_CANCEL, "Cancel") self._do_layout() self._do_bindings()
def InitUI(self): self.pnl = wx.Panel(self) self.nb = wx.Listbook(self.pnl) # create the page windows as children of the notebook page_2dgrid = Page2DGrid(self, self.viewer) page_colors = PageColors(self, self.viewer) page_viewer = PageViewer(self, self.viewer) # add the pages to the notebook with the label to show on the tab self.nb.AddPage(page_2dgrid, page_2dgrid.title) self.nb.AddPage(page_colors, page_colors.title) self.nb.AddPage(page_viewer, page_viewer.title) # finally, put the notebook in a sizer for the panel to manage # the layout sizer = wx.BoxSizer() sizer.Add(self.nb, 1, wx.EXPAND) self.pnl.SetSizer(sizer)
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.Size(600, 400), style=wx.DEFAULT_DIALOG_STYLE) mainSizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listbook.GetListView().SetMinSize((500, -1)) self.listbook.GetListView().SetSize((500, -1)) mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(mainSizer) self.Layout() self.Centre(wx.BOTH) for title, prefView in PreferenceView.views.iteritems(): page = wx.Panel(self.listbook) prefView.populatePanel(page) self.listbook.AddPage(page, title)
def __init__(self, parent, pattern, colorings, colors, min_size, counts_per_colorset): """Fill the empty GUI elements with combination-specific widgets""" super(CombineInterface, self).__init__(parent) self.pattern = pattern self.pattern_size = self.pattern.number_of_nodes() self.colorings = colorings self.colors = colors self.min_size = min_size self.counts_per_colorset = counts_per_colorset # Make the sizer self.sizer = wx.BoxSizer(wx.HORIZONTAL) # Add the ListBook self.listbook = wx.Listbook(self, wx.NewId(), style=wx.BK_TOP) self.sizer.Add(self.listbook, 1, wx.EXPAND) # Add a tab for each coloring self.add_tabs() # We want to see what's in the sizer self.SetSizer(self.sizer)
def InitUI(self): self.Centre() menubar = wx.MenuBar() fileMenu = wx.Menu() fileItem = fileMenu.Append(wx.ID_EXIT, 'Quit', 'Quit application') menubar.Append(fileMenu, '&File') self.SetMenuBar(menubar) self.Bind(wx.EVT_MENU, self.OnExit, fileItem) # and a status bar self.CreateStatusBar() self.SetStatusText("Ready") # create a panel in the frame self.panel = wx.Panel(self) vbox = wx.BoxSizer(wx.VERTICAL) # create the pages for list, calendar and events panelTwo = CalendarPanel(self) panelThree = EventPanel(self) self.lb = wx.Listbook(self, wx.ID_ANY, style=wx.BK_BOTTOM) pages = [(panelTwo, "Calendar"), (panelThree, "Events")] for page, label in pages: self.lb.AddPage(page, label) self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGED, self.OnPageChanged) self.Bind(wx.EVT_LISTBOOK_PAGE_CHANGING, self.OnPageChanging) hbox1 = wx.BoxSizer(wx.VERTICAL) vbox.Add(self.lb, 1, wx.EXPAND) vbox.Add(hbox1) self.SetSizer(vbox) self.Layout()
def __init__(self): wx.Frame.__init__(self, parent = None, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size(500,300), style = wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) sizer_bg = wx.BoxSizer(wx.VERTICAL) self.panel_bg = wx.Panel(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.panel_bg.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_MENU)) sizer_main = wx.BoxSizer(wx.VERTICAL) self.listbook_stage = wx.Listbook(self.panel_bg, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.panel_downloading = wx.Panel(self.listbook_stage, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) sizer_downloading = wx.BoxSizer(wx.VERTICAL) sizer_downloading.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.label_downloading = wx.StaticText(self.panel_downloading, wx.ID_ANY, u"", wx.DefaultPosition, wx.DefaultSize, 0) self.label_downloading.skele = "Fetching %s..." self.label_downloading.Wrap(-1) sizer_downloading.Add(self.label_downloading, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) self.label_downloaded = wx.StaticText(self.panel_downloading, wx.ID_ANY, u"", wx.DefaultPosition, wx.DefaultSize, 0) self.label_downloaded.skele = u"%s downloaded..." self.label_downloaded.Wrap(-1) sizer_downloading.Add(self.label_downloaded, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) sizer_downloading.AddSpacer((0, 0), 2, wx.EXPAND, 5) self.panel_downloading.SetSizer(sizer_downloading) self.panel_downloading.Layout() sizer_downloading.Fit(self.panel_downloading) self.listbook_stage.AddPage(self.panel_downloading, u"Downloading", True) self.panel_waiting = wx.Panel(self.listbook_stage, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) sizer_waiting = wx.BoxSizer(wx.VERTICAL) sizer_waiting.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.label_waiting = wx.StaticText(self.panel_waiting, wx.ID_ANY, u"", wx.DefaultPosition, wx.DefaultSize, 0) self.label_waiting.skele = "Waiting for %s to close. If this hasn't happened with some manner of rapidity, do please open the task manager and kill it yourself. The PID should be %s." self.label_waiting.Wrap(250) sizer_waiting.Add(self.label_waiting, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) sizer_waiting.AddSpacer((0, 0), 2, wx.EXPAND, 5) self.panel_waiting.SetSizer(sizer_waiting) self.panel_waiting.Layout() sizer_waiting.Fit(self.panel_waiting) self.listbook_stage.AddPage(self.panel_waiting, u"Waiting", False) self.panel_extracting = wx.Panel(self.listbook_stage, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) sizer_extracting = wx.BoxSizer(wx.VERTICAL) sizer_extracting.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.label_extracting = wx.StaticText(self.panel_extracting, wx.ID_ANY, u"Currently extracting patch...", wx.DefaultPosition, wx.DefaultSize, 0) self.label_extracting.Wrap(-1) sizer_extracting.Add(self.label_extracting, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) sizer_extracting.AddSpacer((0, 0), 2, wx.EXPAND, 5) self.panel_extracting.SetSizer(sizer_extracting) self.panel_extracting.Layout() sizer_extracting.Fit(self.panel_extracting) self.listbook_stage.AddPage(self.panel_extracting, u"Extracting", False) self.panel_finished = wx.Panel(self.listbook_stage, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) sizer_finished = wx.BoxSizer(wx.VERTICAL) sizer_finished.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.static_finished = wx.StaticText(self.panel_finished, wx.ID_ANY, u"Finished updating the program for you. It will relaunch automatically in a few seconds. Cheers for waiting.", wx.DefaultPosition, wx.DefaultSize, 0) self.static_finished.Wrap(250) sizer_finished.Add(self.static_finished, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL, 5) sizer_finished.AddSpacer((0, 0), 2, wx.EXPAND, 5) self.panel_finished.SetSizer(sizer_finished) self.panel_finished.Layout() sizer_finished.Fit(self.panel_finished) self.listbook_stage.AddPage(self.panel_finished, u"Finished", False) sizer_main.Add(self.listbook_stage, 1, wx.EXPAND | wx.ALL, 5) self.panel_bg.SetSizer(sizer_main) self.panel_bg.Layout() sizer_main.Fit(self.panel_bg) sizer_bg.Add(self.panel_bg, 1, wx.EXPAND, 5) (self.pid, patch_notes_file, remote_resource, self.restart_file) = sys.argv[1:] self.label_downloading.SetLabel( self.label_downloading.skele % remote_resource) self.label_waiting.SetLabel( self.label_waiting.skele % (self.restart_file, self.pid)) self.SetSizer(sizer_bg) self.Layout() self.Show() with file(patch_notes_file, "r") as f: patch_notes = f.read() os.remove(patch_notes_file) downloader_poke, evt_downloader_poke = wx.lib.newevent.NewEvent() downloader_complete, evt_downloader_complete = wx.lib.newevent.NewEvent() self.Bind(evt_downloader_poke, self.update_download_progress) self.Bind(evt_downloader_complete, self.wait_on_pid) downloader = Downloader(self, remote_resource, downloader_poke, downloader_complete) downloader.start()
def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( -1,630 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.Size( 695,630 ), wx.DefaultSize ) bSizer_csc_mainPanel = wx.BoxSizer( wx.VERTICAL ) self.m_listbook_menu = wx.Listbook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT|wx.RAISED_BORDER ) m_listbook_menuImageSize = wx.Size( 64,64 ) m_listbook_menuIndex = 0 m_listbook_menuImages = wx.ImageList( m_listbook_menuImageSize.GetWidth(), m_listbook_menuImageSize.GetHeight() ) self.m_listbook_menu.AssignImageList( m_listbook_menuImages ) self.m_panel_csc = wx.Panel( self.m_listbook_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer_csc = wx.BoxSizer( wx.VERTICAL ) self.m_notebook_csc = wx.Notebook( self.m_panel_csc, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_panel_csc1 = wx.Panel( self.m_notebook_csc, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer_csc1 = wx.BoxSizer( wx.VERTICAL ) self.m_grid_csc1 = wx.grid.Grid( self.m_panel_csc1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid_csc1.CreateGrid( 30, 5 ) self.m_grid_csc1.EnableEditing( False ) self.m_grid_csc1.EnableGridLines( True ) self.m_grid_csc1.EnableDragGridSize( False ) self.m_grid_csc1.SetMargins( 0, 0 ) # Columns self.m_grid_csc1.EnableDragColMove( False ) self.m_grid_csc1.EnableDragColSize( True ) self.m_grid_csc1.SetColLabelSize( 30 ) self.m_grid_csc1.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Rows self.m_grid_csc1.EnableDragRowSize( True ) self.m_grid_csc1.SetRowLabelSize( 80 ) self.m_grid_csc1.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Label Appearance # Cell Defaults self.m_grid_csc1.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) bSizer_csc1.Add( self.m_grid_csc1, 0, wx.ALL|wx.EXPAND, 5 ) self.m_panel_csc1.SetSizer( bSizer_csc1 ) self.m_panel_csc1.Layout() bSizer_csc1.Fit( self.m_panel_csc1 ) self.m_notebook_csc.AddPage( self.m_panel_csc1, u"CSC1", True ) self.m_panel_csc2 = wx.Panel( self.m_notebook_csc, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer_csc2 = wx.BoxSizer( wx.VERTICAL ) self.m_grid_csc2 = wx.grid.Grid( self.m_panel_csc2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid_csc2.CreateGrid( 30, 5 ) self.m_grid_csc2.EnableEditing( True ) self.m_grid_csc2.EnableGridLines( True ) self.m_grid_csc2.EnableDragGridSize( False ) self.m_grid_csc2.SetMargins( 0, 0 ) # Columns self.m_grid_csc2.EnableDragColMove( False ) self.m_grid_csc2.EnableDragColSize( True ) self.m_grid_csc2.SetColLabelSize( 30 ) self.m_grid_csc2.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Rows self.m_grid_csc2.EnableDragRowSize( True ) self.m_grid_csc2.SetRowLabelSize( 80 ) self.m_grid_csc2.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Label Appearance # Cell Defaults self.m_grid_csc2.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) bSizer_csc2.Add( self.m_grid_csc2, 0, wx.ALL|wx.EXPAND, 5 ) self.m_panel_csc2.SetSizer( bSizer_csc2 ) self.m_panel_csc2.Layout() bSizer_csc2.Fit( self.m_panel_csc2 ) self.m_notebook_csc.AddPage( self.m_panel_csc2, u"CSC2", False ) self.m_panel_csc3 = wx.Panel( self.m_notebook_csc, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer_csc3 = wx.BoxSizer( wx.VERTICAL ) self.m_grid_csc3 = wx.grid.Grid( self.m_panel_csc3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid_csc3.CreateGrid( 30, 5 ) self.m_grid_csc3.EnableEditing( True ) self.m_grid_csc3.EnableGridLines( True ) self.m_grid_csc3.EnableDragGridSize( False ) self.m_grid_csc3.SetMargins( 0, 0 ) # Columns self.m_grid_csc3.EnableDragColMove( False ) self.m_grid_csc3.EnableDragColSize( True ) self.m_grid_csc3.SetColLabelSize( 30 ) self.m_grid_csc3.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Rows self.m_grid_csc3.EnableDragRowSize( True ) self.m_grid_csc3.SetRowLabelSize( 80 ) self.m_grid_csc3.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Label Appearance # Cell Defaults self.m_grid_csc3.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) bSizer_csc3.Add( self.m_grid_csc3, 0, wx.ALL|wx.EXPAND, 5 ) self.m_panel_csc3.SetSizer( bSizer_csc3 ) self.m_panel_csc3.Layout() bSizer_csc3.Fit( self.m_panel_csc3 ) self.m_notebook_csc.AddPage( self.m_panel_csc3, u"CSC3", False ) bSizer_csc.Add( self.m_notebook_csc, 1, wx.EXPAND |wx.ALL, 5 ) self.m_panel_csc.SetSizer( bSizer_csc ) self.m_panel_csc.Layout() bSizer_csc.Fit( self.m_panel_csc ) self.m_listbook_menu.AddPage( self.m_panel_csc, u"CSC", False ) m_listbook_menuBitmap = wx.Bitmap( u"src/1.png", wx.BITMAP_TYPE_ANY ) if ( m_listbook_menuBitmap.Ok() ): m_listbook_menuImages.Add( m_listbook_menuBitmap ) self.m_listbook_menu.SetPageImage( m_listbook_menuIndex, m_listbook_menuIndex ) m_listbook_menuIndex += 1 self.m_panel_bms = wx.Panel( self.m_listbook_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer_bms = wx.BoxSizer( wx.VERTICAL ) bSizer38 = wx.BoxSizer( wx.VERTICAL ) bSizer38.SetMinSize( wx.Size( -1,205 ) ) self.m_propertyGridManager1 = pg.PropertyGridManager(self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.Size( -1,-1 ), wx.propgrid.PGMAN_DEFAULT_STYLE|wx.propgrid.PG_SPLITTER_AUTO_CENTER) self.m_propertyGridManager1.Enable( False ) self.m_propertyGridPage1 = self.m_propertyGridManager1.AddPage( u"Page", wx.NullBitmap ); self.m_propertyGridItem1 = self.m_propertyGridPage1.Append( pg.StringProperty( u"Battery State", u"Battery State" ) ) self.m_propertyGridItem9 = self.m_propertyGridPage1.Append( pg.FloatProperty( u"Voltage(V)", u"Voltage(V)" ) ) self.m_propertyGridItem2 = self.m_propertyGridPage1.Append( pg.FloatProperty( u"Current(A)", u"Current(A)" ) ) self.m_propertyGridItem3 = self.m_propertyGridPage1.Append( pg.IntProperty( u"Nominal Capacity(Ah)", u"Nominal Capacity(Ah)" ) ) self.m_propertyGridItem4 = self.m_propertyGridPage1.Append( pg.FloatProperty( u"Current Capacity(KWh)", u"Current Capacity(KWh)" ) ) self.m_propertyGridItem5 = self.m_propertyGridPage1.Append( pg.FloatProperty( u"SOC(%)", u"SOC(%)" ) ) self.m_propertyGridItem6 = self.m_propertyGridPage1.Append( pg.IntProperty( u"SOH(%)", u"SOH(%)" ) ) self.m_propertyGridItem7 = self.m_propertyGridPage1.Append( pg.StringProperty( u"Pack SN.", u"Pack SN." ) ) self.m_propertyGridItem8 = self.m_propertyGridPage1.Append( pg.StringProperty( u"Version", u"Version" ) ) bSizer38.Add( self.m_propertyGridManager1, 1, wx.EXPAND, 5 ) bSizer_bms.Add( bSizer38, 0, wx.EXPAND, 5 ) bSizer_bms.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 ) self.m_staticline1 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline1, 0, wx.EXPAND |wx.ALL, 5 ) self.m_staticText1 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"***** Error/Warning Status *****", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE ) self.m_staticText1.Wrap( -1 ) bSizer_bms.Add( self.m_staticText1, 0, wx.EXPAND, 5 ) self.m_staticline2 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline2, 0, wx.EXPAND |wx.ALL, 5 ) bSizer11 = wx.BoxSizer( wx.HORIZONTAL ) bSizer12 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText2 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"MainPosRelay", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText2.Wrap( -1 ) bSizer12.Add( self.m_staticText2, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline12 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer12.Add( self.m_staticline12, 0, wx.EXPAND |wx.ALL, 5 ) self.m_bitmap1 = wx.StaticBitmap( self.m_panel_bms, wx.ID_ANY, wx.Bitmap( u"src/11.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer12.Add( self.m_bitmap1, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer11.Add( bSizer12, 1, wx.EXPAND, 5 ) bSizer13 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText3 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"MainNegRelay", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText3.Wrap( -1 ) bSizer13.Add( self.m_staticText3, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline13 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer13.Add( self.m_staticline13, 0, wx.EXPAND |wx.ALL, 5 ) self.m_bitmap2 = wx.StaticBitmap( self.m_panel_bms, wx.ID_ANY, wx.Bitmap( u"src/11.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer13.Add( self.m_bitmap2, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer11.Add( bSizer13, 1, wx.EXPAND, 5 ) self.m_staticline9 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL ) bSizer11.Add( self.m_staticline9, 0, wx.EXPAND |wx.ALL, 5 ) bSizer14 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText4 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"ISO Normal", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText4.Wrap( -1 ) bSizer14.Add( self.m_staticText4, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline21 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer14.Add( self.m_staticline21, 0, wx.EXPAND |wx.ALL, 5 ) self.m_bitmap3 = wx.StaticBitmap( self.m_panel_bms, wx.ID_ANY, wx.Bitmap( u"src/11.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer14.Add( self.m_bitmap3, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer11.Add( bSizer14, 1, wx.EXPAND, 5 ) bSizer141 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText41 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"ISO Warning", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText41.Wrap( -1 ) bSizer141.Add( self.m_staticText41, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline22 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer141.Add( self.m_staticline22, 0, wx.EXPAND |wx.ALL, 5 ) self.m_bitmap31 = wx.StaticBitmap( self.m_panel_bms, wx.ID_ANY, wx.Bitmap( u"src/11.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer141.Add( self.m_bitmap31, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer11.Add( bSizer141, 1, wx.EXPAND, 5 ) bSizer142 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText42 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"ISO Error", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText42.Wrap( -1 ) bSizer142.Add( self.m_staticText42, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline23 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer142.Add( self.m_staticline23, 0, wx.EXPAND |wx.ALL, 5 ) self.m_bitmap32 = wx.StaticBitmap( self.m_panel_bms, wx.ID_ANY, wx.Bitmap( u"src/11.png", wx.BITMAP_TYPE_ANY ), wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer142.Add( self.m_bitmap32, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer11.Add( bSizer142, 1, wx.EXPAND, 5 ) bSizer_bms.Add( bSizer11, 0, wx.EXPAND, 5 ) self.m_staticline30 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline30, 0, wx.EXPAND |wx.ALL, 5 ) bSizer_bms.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 ) self.m_staticline3 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline3, 0, wx.EXPAND |wx.ALL, 5 ) self.m_staticText5 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"***** User Control Area *****", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTRE ) self.m_staticText5.Wrap( -1 ) bSizer_bms.Add( self.m_staticText5, 0, wx.EXPAND, 5 ) self.m_staticline4 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline4, 0, wx.EXPAND |wx.ALL, 5 ) bSizer15 = wx.BoxSizer( wx.HORIZONTAL ) bSizer37 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText25 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"User Name", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText25.Wrap( -1 ) bSizer37.Add( self.m_staticText25, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_textCtrl2 = wx.TextCtrl( self.m_panel_bms, wx.ID_ANY, u"admin", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer37.Add( self.m_textCtrl2, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline25 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer37.Add( self.m_staticline25, 0, wx.EXPAND |wx.ALL, 5 ) self.m_staticText26 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"Password", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText26.Wrap( -1 ) bSizer37.Add( self.m_staticText26, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_textCtrl1 = wx.TextCtrl( self.m_panel_bms, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_PASSWORD|wx.TE_PROCESS_ENTER ) bSizer37.Add( self.m_textCtrl1, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer15.Add( bSizer37, 1, wx.EXPAND, 5 ) self.m_staticline27 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL ) bSizer15.Add( self.m_staticline27, 0, wx.EXPAND |wx.ALL, 5 ) bSizer36 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText21 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"Close Time", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText21.Wrap( -1 ) bSizer36.Add( self.m_staticText21, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticText14 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"00:00:00", wx.DefaultPosition, wx.Size( -1,25 ), 0 ) self.m_staticText14.Wrap( -1 ) bSizer36.Add( self.m_staticText14, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline24 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer36.Add( self.m_staticline24, 0, wx.EXPAND |wx.ALL, 5 ) self.m_staticText22 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"MainRelay", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText22.Wrap( -1 ) bSizer36.Add( self.m_staticText22, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_button14 = wx.Button( self.m_panel_bms, wx.ID_ANY, u"Close", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_button14.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) self.m_button14.Enable( False ) bSizer36.Add( self.m_button14, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer15.Add( bSizer36, 1, wx.EXPAND, 5 ) self.m_staticline28 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_VERTICAL ) bSizer15.Add( self.m_staticline28, 0, wx.EXPAND |wx.ALL, 5 ) bSizer35 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText23 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"Open(Cur<1A)", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText23.Wrap( -1 ) bSizer35.Add( self.m_staticText23, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_button10 = wx.Button( self.m_panel_bms, wx.ID_ANY, u"Open", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_button10.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) bSizer35.Add( self.m_button10, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_staticline26 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer35.Add( self.m_staticline26, 0, wx.EXPAND |wx.ALL, 5 ) self.m_staticText24 = wx.StaticText( self.m_panel_bms, wx.ID_ANY, u"EmergencyOpen", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText24.Wrap( -1 ) bSizer35.Add( self.m_staticText24, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_button11 = wx.Button( self.m_panel_bms, wx.ID_ANY, u"SOS Open", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_button11.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) self.m_button11.SetMinSize( wx.Size( 140,50 ) ) bSizer35.Add( self.m_button11, 1, wx.ALIGN_CENTER|wx.ALL, 5 ) bSizer15.Add( bSizer35, 1, wx.EXPAND, 5 ) self.m_staticline31 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer15.Add( self.m_staticline31, 0, wx.EXPAND |wx.ALL, 5 ) bSizer_bms.Add( bSizer15, 0, wx.EXPAND, 5 ) self.m_staticline32 = wx.StaticLine( self.m_panel_bms, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL ) bSizer_bms.Add( self.m_staticline32, 0, wx.EXPAND |wx.ALL, 5 ) bSizer_bms.AddSpacer( ( 0, 0), 1, wx.EXPAND, 5 ) self.m_panel_bms.SetSizer( bSizer_bms ) self.m_panel_bms.Layout() bSizer_bms.Fit( self.m_panel_bms ) self.m_listbook_menu.AddPage( self.m_panel_bms, u"BMS", True ) m_listbook_menuBitmap = wx.Bitmap( u"src/2.png", wx.BITMAP_TYPE_ANY ) if ( m_listbook_menuBitmap.Ok() ): m_listbook_menuImages.Add( m_listbook_menuBitmap ) self.m_listbook_menu.SetPageImage( m_listbook_menuIndex, m_listbook_menuIndex ) m_listbook_menuIndex += 1 self.m_panel_car = wx.Panel( self.m_listbook_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_listbook_menu.AddPage( self.m_panel_car, u"Car", False ) m_listbook_menuBitmap = wx.Bitmap( u"src/3.png", wx.BITMAP_TYPE_ANY ) if ( m_listbook_menuBitmap.Ok() ): m_listbook_menuImages.Add( m_listbook_menuBitmap ) self.m_listbook_menu.SetPageImage( m_listbook_menuIndex, m_listbook_menuIndex ) m_listbook_menuIndex += 1 self.m_panel_setting = wx.Panel( self.m_listbook_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_listbook_menu.AddPage( self.m_panel_setting, u"Setting", False ) m_listbook_menuBitmap = wx.Bitmap( u"src/4.png", wx.BITMAP_TYPE_ANY ) if ( m_listbook_menuBitmap.Ok() ): m_listbook_menuImages.Add( m_listbook_menuBitmap ) self.m_listbook_menu.SetPageImage( m_listbook_menuIndex, m_listbook_menuIndex ) m_listbook_menuIndex += 1 self.m_panel_diag = wx.Panel( self.m_listbook_menu, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_listbook_menu.AddPage( self.m_panel_diag, u"Diag", False ) m_listbook_menuBitmap = wx.Bitmap( u"src/5.png", wx.BITMAP_TYPE_ANY ) if ( m_listbook_menuBitmap.Ok() ): m_listbook_menuImages.Add( m_listbook_menuBitmap ) self.m_listbook_menu.SetPageImage( m_listbook_menuIndex, m_listbook_menuIndex ) m_listbook_menuIndex += 1 bSizer_csc_mainPanel.Add( self.m_listbook_menu, 1, wx.EXPAND, 5 ) self.SetSizer( bSizer_csc_mainPanel ) self.Layout() self.m_statusBar1 = self.CreateStatusBar( 1, wx.ST_SIZEGRIP, wx.ID_ANY ) self.Centre( wx.BOTH ) # Connect Events self.m_listbook_menu.Bind( wx.EVT_LISTBOOK_PAGE_CHANGED, self.funcMenuChanged ) self.m_listbook_menu.Bind( wx.EVT_LISTBOOK_PAGE_CHANGING, self.funcMenuChanging ) self.m_notebook_csc.Bind( wx.EVT_NOTEBOOK_PAGE_CHANGED, self.cscPageChanged ) self.m_notebook_csc.Bind( wx.EVT_NOTEBOOK_PAGE_CHANGING, self.cscPageChanging ) self.m_textCtrl1.Bind( wx.EVT_TEXT_ENTER, self.passwordInputFinished ) self.m_button14.Bind( wx.EVT_BUTTON, self.closeMainRelay ) self.m_button10.Bind( wx.EVT_BUTTON, self.openMainRelay ) self.m_button11.Bind( wx.EVT_BUTTON, self.openMainRelayEmergency )
def test_listbook2(self): book = wx.Listbook() book.Create(self.frame)
def test_listbook3(self): book = wx.Listbook(self.frame) book.AddPage(wx.Panel(book), 'one') book.AddPage(wx.Panel(book), 'two')
def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,463 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHints( wx.DefaultSize, wx.DefaultSize ) bSizer2 = wx.BoxSizer( wx.VERTICAL ) self.m_listbook1 = wx.Listbook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT ) self.m_scrolledWindow3 = wx.ScrolledWindow( self.m_listbook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow3.SetScrollRate( 5, 5 ) gSizer4 = wx.GridSizer( 0, 2, 0, 0 ) self.m_htmlWin2 = wx.html.HtmlWindow( self.m_scrolledWindow3, wx.ID_ANY, wx.DefaultPosition, wx.Size( 100,100 ), wx.html.HW_SCROLLBAR_AUTO ) gSizer4.Add( self.m_htmlWin2, 0, wx.ALL, 5 ) self.m_richText1 = wx.richtext.RichTextCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0|wx.VSCROLL|wx.HSCROLL|wx.NO_BORDER|wx.WANTS_CHARS ) gSizer4.Add( self.m_richText1, 1, wx.EXPAND |wx.ALL, 5 ) self.m_toggleBtn1 = wx.ToggleButton( self.m_scrolledWindow3, wx.ID_ANY, u"Toggle me!", wx.DefaultPosition, wx.DefaultSize, 0 ) gSizer4.Add( self.m_toggleBtn1, 0, wx.ALL, 5 ) self.m_searchCtrl2 = wx.SearchCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_searchCtrl2.ShowSearchButton( True ) self.m_searchCtrl2.ShowCancelButton( False ) gSizer4.Add( self.m_searchCtrl2, 0, wx.ALL, 5 ) self.m_colourPicker1 = wx.ColourPickerCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.BLACK, wx.DefaultPosition, wx.DefaultSize, wx.CLRP_DEFAULT_STYLE ) gSizer4.Add( self.m_colourPicker1, 0, wx.ALL, 5 ) self.m_fontPicker1 = wx.FontPickerCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.NullFont, wx.DefaultPosition, wx.DefaultSize, wx.FNTP_DEFAULT_STYLE ) self.m_fontPicker1.SetMaxPointSize( 100 ) gSizer4.Add( self.m_fontPicker1, 0, wx.ALL, 5 ) self.m_filePicker1 = wx.FilePickerCtrl( self.m_scrolledWindow3, wx.ID_ANY, u"D:\\python\\mywindows.py", u"Select a file", u"*.*", wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE ) gSizer4.Add( self.m_filePicker1, 0, wx.ALL, 5 ) self.m_dirPicker1 = wx.DirPickerCtrl( self.m_scrolledWindow3, wx.ID_ANY, u"D:\\python", u"Select a folder", wx.DefaultPosition, wx.DefaultSize, wx.DIRP_DEFAULT_STYLE ) gSizer4.Add( self.m_dirPicker1, 0, wx.ALL, 5 ) self.m_datePicker1 = wx.adv.DatePickerCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.adv.DP_DEFAULT ) gSizer4.Add( self.m_datePicker1, 0, wx.ALL, 5 ) self.m_calendar1 = wx.adv.CalendarCtrl( self.m_scrolledWindow3, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.adv.CAL_SHOW_HOLIDAYS ) gSizer4.Add( self.m_calendar1, 0, wx.ALL, 5 ) self.m_scrolledWindow3.SetSizer( gSizer4 ) self.m_scrolledWindow3.Layout() gSizer4.Fit( self.m_scrolledWindow3 ) self.m_listbook1.AddPage( self.m_scrolledWindow3, u"a page", False ) self.m_scrolledWindow4 = wx.ScrolledWindow( self.m_listbook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow4.SetScrollRate( 5, 5 ) gSizer5 = wx.GridSizer( 0, 2, 0, 0 ) self.m_scrollBar1 = wx.ScrollBar( self.m_scrolledWindow4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SB_HORIZONTAL ) gSizer5.Add( self.m_scrollBar1, 0, wx.ALL, 5 ) self.m_spinCtrl1 = wx.SpinCtrl( self.m_scrolledWindow4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 10, 2 ) gSizer5.Add( self.m_spinCtrl1, 0, wx.ALL, 5 ) self.m_spinCtrlDouble2 = wx.SpinCtrlDouble( self.m_scrolledWindow4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 100, 4.000000, 1 ) self.m_spinCtrlDouble2.SetDigits( 0 ) gSizer5.Add( self.m_spinCtrlDouble2, 0, wx.ALL, 5 ) self.m_spinBtn1 = wx.SpinButton( self.m_scrolledWindow4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) gSizer5.Add( self.m_spinBtn1, 0, wx.ALL, 5 ) self.m_hyperlink1 = wx.adv.HyperlinkCtrl( self.m_scrolledWindow4, wx.ID_ANY, u"xxx", u"http://teaching.bo-yuan.net/", wx.DefaultPosition, wx.DefaultSize, wx.adv.HL_DEFAULT_STYLE ) gSizer5.Add( self.m_hyperlink1, 0, wx.ALL, 5 ) self.m_genericDirCtrl2 = wx.GenericDirCtrl( self.m_scrolledWindow4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.DIRCTRL_3D_INTERNAL|wx.SUNKEN_BORDER, wx.EmptyString, 0 ) self.m_genericDirCtrl2.ShowHidden( False ) gSizer5.Add( self.m_genericDirCtrl2, 1, wx.EXPAND |wx.ALL, 5 ) self.m_scrolledWindow4.SetSizer( gSizer5 ) self.m_scrolledWindow4.Layout() gSizer5.Fit( self.m_scrolledWindow4 ) self.m_listbook1.AddPage( self.m_scrolledWindow4, u"a page", False ) self.m_scrolledWindow5 = wx.ScrolledWindow( self.m_listbook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow5.SetScrollRate( 5, 5 ) gSizer6 = wx.GridSizer( 0, 2, 0, 0 ) self.m_treeCtrl1 = wx.TreeCtrl( self.m_scrolledWindow5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TR_DEFAULT_STYLE ) gSizer6.Add( self.m_treeCtrl1, 0, wx.ALL, 5 ) self.m_grid1 = wx.grid.Grid( self.m_scrolledWindow5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid1.CreateGrid( 5, 5 ) self.m_grid1.EnableEditing( True ) self.m_grid1.EnableGridLines( True ) self.m_grid1.EnableDragGridSize( False ) self.m_grid1.SetMargins( 0, 0 ) # Columns self.m_grid1.EnableDragColMove( False ) self.m_grid1.EnableDragColSize( True ) self.m_grid1.SetColLabelSize( 30 ) self.m_grid1.SetColLabelAlignment( wx.ALIGN_CENTER, wx.ALIGN_CENTER ) # Rows self.m_grid1.EnableDragRowSize( True ) self.m_grid1.SetRowLabelSize( 80 ) self.m_grid1.SetRowLabelAlignment( wx.ALIGN_CENTER, wx.ALIGN_CENTER ) # Label Appearance # Cell Defaults self.m_grid1.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) gSizer6.Add( self.m_grid1, 0, wx.ALL, 5 ) m_checkList2Choices = [u"aaa", u"bbb", u"ccc"] self.m_checkList2 = wx.CheckListBox( self.m_scrolledWindow5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_checkList2Choices, 0 ) gSizer6.Add( self.m_checkList2, 0, wx.ALL, 5 ) self.m_scrolledWindow5.SetSizer( gSizer6 ) self.m_scrolledWindow5.Layout() gSizer6.Fit( self.m_scrolledWindow5 ) self.m_listbook1.AddPage( self.m_scrolledWindow5, u"a page", True ) bSizer2.Add( self.m_listbook1, 1, wx.EXPAND |wx.ALL, 5 ) self.m_choicebook1 = wx.Choicebook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT ) self.m_panel8 = wx.Panel( self.m_choicebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_choicebook1.AddPage( self.m_panel8, u"a page", True ) self.m_panel9 = wx.Panel( self.m_choicebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_choicebook1.AddPage( self.m_panel9, u"a page", False ) self.m_panel10 = wx.Panel( self.m_choicebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_choicebook1.AddPage( self.m_panel10, u"a page", False ) bSizer2.Add( self.m_choicebook1, 1, wx.EXPAND |wx.ALL, 5 ) self.SetSizer( bSizer2 ) self.Layout() self.m_timer1 = wx.Timer() self.m_timer1.SetOwner( self, wx.ID_ANY ) self.Centre( wx.BOTH )
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"MCDI GUI 应用程序", pos=wx.DefaultPosition, size=wx.Size(480, 448), style=wx.CAPTION | wx.CLOSE_BOX | wx.MINIMIZE_BOX | wx.TAB_TRAVERSAL) self.SetSizeHints(wx.Size(-1, -1), wx.Size(-1, -1)) self.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MainContainer = wx.BoxSizer(wx.VERTICAL) self.MIDIPages = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.MIDIPageFile = wx.ScrolledWindow(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.MIDIPageFile.SetScrollRate(5, 5) self.MIDIPageFile.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageFileContainer = wx.BoxSizer(wx.VERTICAL) MIDIPageFile1 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageFile1.SetFlexibleDirection(wx.BOTH) MIDIPageFile1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.MIDIPathPrompt = wx.StaticText(self.MIDIPageFile, wx.ID_ANY, u"MIDI文件 路径:", wx.DefaultPosition, wx.DefaultSize, 0) self.MIDIPathPrompt.Wrap(-1) MIDIPageFile1.Add(self.MIDIPathPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.MIDIPathPicker = wx.FilePickerCtrl(self.MIDIPageFile, wx.ID_ANY, wx.EmptyString, u"选择一个MIDI文件", u"*.mid", wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE) MIDIPageFile1.Add(self.MIDIPathPicker, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MIDIPageFileContainer.Add(MIDIPageFile1, 0, wx.EXPAND, 5) MIDIPageFile2 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageFile2.SetFlexibleDirection(wx.BOTH) MIDIPageFile2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.DotMCPathPrompt = wx.StaticText(self.MIDIPageFile, wx.ID_ANY, u".minecraft 目录:", wx.DefaultPosition, wx.DefaultSize, 0) self.DotMCPathPrompt.Wrap(-1) MIDIPageFile2.Add(self.DotMCPathPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.DotMCPathPicker = wx.DirPickerCtrl(self.MIDIPageFile, wx.ID_ANY, wx.EmptyString, u"Select a folder", wx.DefaultPosition, wx.Size(-1, -1), wx.DIRP_DEFAULT_STYLE) self.DotMCPathPicker.SetFont( wx.Font(wx.NORMAL_FONT.GetPointSize(), wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, wx.EmptyString)) MIDIPageFile2.Add(self.DotMCPathPicker, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MIDIPageFileContainer.Add(MIDIPageFile2, 0, wx.EXPAND, 5) MIDIPageFile3 = wx.FlexGridSizer(0, 3, 0, 0) MIDIPageFile3.SetFlexibleDirection(wx.BOTH) MIDIPageFile3.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.MCVersionPrompt = wx.StaticText(self.MIDIPageFile, wx.ID_ANY, u"Minecraft 版本:", wx.DefaultPosition, wx.DefaultSize, 0) self.MCVersionPrompt.Wrap(-1) MIDIPageFile3.Add(self.MCVersionPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MCVersionPickerChoices = [] self.MCVersionPicker = wx.Choice(self.MIDIPageFile, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, MCVersionPickerChoices, 0) self.MCVersionPicker.SetSelection(0) MIDIPageFile3.Add(self.MCVersionPicker, 0, wx.ALL, 5) self.MCVersionShowOld = wx.CheckBox(self.MIDIPageFile, wx.ID_ANY, u"显示旧版本", wx.DefaultPosition, wx.DefaultSize, 0) MIDIPageFile3.Add(self.MCVersionShowOld, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MIDIPageFileContainer.Add(MIDIPageFile3, 0, wx.EXPAND, 5) MIDIPageFile4 = wx.FlexGridSizer(0, 3, 0, 0) MIDIPageFile4.SetFlexibleDirection(wx.BOTH) MIDIPageFile4.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.MCWorldPrompt = wx.StaticText(self.MIDIPageFile, wx.ID_ANY, u"存档 名称:", wx.DefaultPosition, wx.DefaultSize, 0) self.MCWorldPrompt.Wrap(-1) MIDIPageFile4.Add( self.MCWorldPrompt, 0, wx.ALL | wx.ALIGN_CENTER_HORIZONTAL | wx.ALIGN_CENTER_VERTICAL, 5) MCWorldPickerChoices = [] self.MCWorldPicker = wx.Choice(self.MIDIPageFile, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, MCWorldPickerChoices, 0) self.MCWorldPicker.SetSelection(0) MIDIPageFile4.Add(self.MCWorldPicker, 0, wx.ALL, 5) self.MCVersionDependent = wx.CheckBox(self.MIDIPageFile, wx.ID_ANY, u"禁用版本独立", wx.DefaultPosition, wx.DefaultSize, 0) self.MCVersionDependent.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageFile4.Add(self.MCVersionDependent, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MIDIPageFileContainer.Add(MIDIPageFile4, 0, 0, 5) MIDIPageFileAdvance = wx.StaticBoxSizer( wx.StaticBox(self.MIDIPageFile, wx.ID_ANY, u"高级选项"), wx.VERTICAL) MIDIPageFile5 = wx.FlexGridSizer(2, 3, 0, 0) MIDIPageFile5.SetFlexibleDirection(wx.BOTH) MIDIPageFile5.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.PackNamespacePrompt = wx.StaticText( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, u"命名空间:", wx.DefaultPosition, wx.DefaultSize, 0) self.PackNamespacePrompt.Wrap(-1) MIDIPageFile5.Add(self.PackNamespacePrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.PackNamespaceInput = wx.TextCtrl( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) MIDIPageFile5.Add(self.PackNamespaceInput, 0, wx.ALL, 5) self.PackNamespaceAuto = wx.CheckBox( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, u"自动设定", wx.DefaultPosition, wx.DefaultSize, 0) self.PackNamespaceAuto.SetValue(True) MIDIPageFile5.Add(self.PackNamespaceAuto, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.PackIdentifierPrompt = wx.StaticText( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, u"包名称:", wx.DefaultPosition, wx.DefaultSize, 0) self.PackIdentifierPrompt.Wrap(-1) MIDIPageFile5.Add(self.PackIdentifierPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.PackIdentifierInput = wx.TextCtrl( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) MIDIPageFile5.Add(self.PackIdentifierInput, 0, wx.ALL, 5) self.PackIdentifierAuto = wx.CheckBox( MIDIPageFileAdvance.GetStaticBox(), wx.ID_ANY, u"自动设定", wx.DefaultPosition, wx.DefaultSize, 0) self.PackIdentifierAuto.SetValue(True) MIDIPageFile5.Add(self.PackIdentifierAuto, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MIDIPageFileAdvance.Add(MIDIPageFile5, 1, wx.EXPAND, 5) MIDIPageFileContainer.Add(MIDIPageFileAdvance, 0, wx.EXPAND, 5) self.MIDIPageFile.SetSizer(MIDIPageFileContainer) self.MIDIPageFile.Layout() MIDIPageFileContainer.Fit(self.MIDIPageFile) self.MIDIPages.AddPage(self.MIDIPageFile, u"文件与生成", False) self.MIDIPageTiming = wx.ScrolledWindow(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.MIDIPageTiming.SetScrollRate(5, 5) self.MIDIPageTiming.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageTimingContainer = wx.BoxSizer(wx.VERTICAL) self.MIDIPageTimingPages = wx.Choicebook(self.MIDIPageTiming, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT) self.TimingFlex = wx.Panel(self.MIDIPageTimingPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) MIDIPageTiming1 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageTiming1.SetFlexibleDirection(wx.BOTH) MIDIPageTiming1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.FlexDurationPrompt = wx.StaticText(self.TimingFlex, wx.ID_ANY, u"时长(自动=0,秒):", wx.DefaultPosition, wx.DefaultSize, 0) self.FlexDurationPrompt.Wrap(-1) MIDIPageTiming1.Add(self.FlexDurationPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.FlexDurationSpin = wx.SpinCtrlDouble( self.TimingFlex, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 65535, 0, 0.5) self.FlexDurationSpin.SetDigits(0) MIDIPageTiming1.Add(self.FlexDurationSpin, 0, wx.ALL, 5) self.FlexTolerancePrompt = wx.StaticText(self.TimingFlex, wx.ID_ANY, u"容差(正负秒):", wx.DefaultPosition, wx.DefaultSize, 0) self.FlexTolerancePrompt.Wrap(-1) MIDIPageTiming1.Add(self.FlexTolerancePrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.FlexToleranceSpin = wx.SpinCtrlDouble( self.TimingFlex, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0.1, 127, 3, 0.1) self.FlexToleranceSpin.SetDigits(0) MIDIPageTiming1.Add(self.FlexToleranceSpin, 0, wx.ALL, 5) self.FlexSteppingPrompt = wx.StaticText(self.TimingFlex, wx.ID_ANY, u"步进(秒,过大无效):", wx.DefaultPosition, wx.DefaultSize, 0) self.FlexSteppingPrompt.Wrap(-1) MIDIPageTiming1.Add(self.FlexSteppingPrompt, 0, wx.ALL, 5) self.FlexSteppingSpin = wx.SpinCtrlDouble( self.TimingFlex, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0.01, 1, 0.100000, 0.01) self.FlexSteppingSpin.SetDigits(0) MIDIPageTiming1.Add(self.FlexSteppingSpin, 0, wx.ALL, 5) self.TimingFlex.SetSizer(MIDIPageTiming1) self.TimingFlex.Layout() MIDIPageTiming1.Fit(self.TimingFlex) self.MIDIPageTimingPages.AddPage(self.TimingFlex, u"弹性时长(推荐)", True) self.TimingStaticT = wx.Panel(self.MIDIPageTimingPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) MIDIPageTiming2 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageTiming2.SetFlexibleDirection(wx.BOTH) MIDIPageTiming2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.StaticTickRatePrompt = wx.StaticText(self.TimingStaticT, wx.ID_ANY, u"刻速率(1/x):", wx.DefaultPosition, wx.DefaultSize, 0) self.StaticTickRatePrompt.Wrap(-1) MIDIPageTiming2.Add(self.StaticTickRatePrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.StaticTickRateSpin = wx.SpinCtrlDouble( self.TimingStaticT, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 1, 65535, 50, 0.1) self.StaticTickRateSpin.SetDigits(0) MIDIPageTiming2.Add(self.StaticTickRateSpin, 0, wx.ALL, 5) self.TimingStaticT.SetSizer(MIDIPageTiming2) self.TimingStaticT.Layout() MIDIPageTiming2.Fit(self.TimingStaticT) self.MIDIPageTimingPages.AddPage(self.TimingStaticT, u"固定刻速率", False) self.TimingStaticD = wx.Panel(self.MIDIPageTimingPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) MIDIPageTiming3 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageTiming3.SetFlexibleDirection(wx.BOTH) MIDIPageTiming3.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.StaticDurationPrompt = wx.StaticText(self.TimingStaticD, wx.ID_ANY, u"时长(自动=0,秒):", wx.DefaultPosition, wx.DefaultSize, 0) self.StaticDurationPrompt.Wrap(-1) MIDIPageTiming3.Add(self.StaticDurationPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.StaticDurationSpin = wx.SpinCtrlDouble( self.TimingStaticD, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 65535, 0.000000, 0.5) self.StaticDurationSpin.SetDigits(0) MIDIPageTiming3.Add(self.StaticDurationSpin, 0, wx.ALL, 5) self.TimingStaticD.SetSizer(MIDIPageTiming3) self.TimingStaticD.Layout() MIDIPageTiming3.Fit(self.TimingStaticD) self.MIDIPageTimingPages.AddPage(self.TimingStaticD, u"固定时长", False) MIDIPageTimingContainer.Add(self.MIDIPageTimingPages, 1, wx.EXPAND | wx.ALL, 5) self.MIDIPageTiming.SetSizer(MIDIPageTimingContainer) self.MIDIPageTiming.Layout() MIDIPageTimingContainer.Fit(self.MIDIPageTiming) self.MIDIPages.AddPage(self.MIDIPageTiming, u"时序", False) self.MIDIPageEffect = wx.Panel(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.MIDIPageEffect.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageEffectContainer = wx.BoxSizer(wx.VERTICAL) MIDIPageEffect1 = wx.FlexGridSizer(0, 3, 0, 0) MIDIPageEffect1.SetFlexibleDirection(wx.BOTH) MIDIPageEffect1.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.EffectAllowPan = wx.CheckBox(self.MIDIPageEffect, wx.ID_ANY, u"允许立体声像", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectAllowPan.SetValue(True) MIDIPageEffect1.Add(self.EffectAllowPan, 0, wx.ALL, 5) self.EffectAllowGVol = wx.CheckBox(self.MIDIPageEffect, wx.ID_ANY, u"允许全局音量", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectAllowGVol.SetValue(True) MIDIPageEffect1.Add(self.EffectAllowGVol, 0, wx.ALL, 5) self.EffectAllowPitch = wx.CheckBox(self.MIDIPageEffect, wx.ID_ANY, u"允许弯音轮", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectAllowPitch.SetValue(True) MIDIPageEffect1.Add(self.EffectAllowPitch, 0, wx.ALL, 5) MIDIPageEffectContainer.Add(MIDIPageEffect1, 0, wx.EXPAND, 5) MIDIPageEffect2 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageEffect2.SetFlexibleDirection(wx.BOTH) MIDIPageEffect2.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.EffectPitchFactorPrompt = wx.StaticText(self.MIDIPageEffect, wx.ID_ANY, u"弯音系数(倍率):", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectPitchFactorPrompt.Wrap(-1) MIDIPageEffect2.Add(self.EffectPitchFactorPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.EffectPitchFactorSpin = wx.SpinCtrlDouble( self.MIDIPageEffect, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0, 1, 1.000000, 0.01) self.EffectPitchFactorSpin.SetDigits(0) MIDIPageEffect2.Add(self.EffectPitchFactorSpin, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.EffectVolumeFactorPrompt = wx.StaticText(self.MIDIPageEffect, wx.ID_ANY, u"音量系数(倍率):", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectVolumeFactorPrompt.Wrap(-1) MIDIPageEffect2.Add(self.EffectVolumeFactorPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.EffectVolumeFactorSpin = wx.SpinCtrlDouble( self.MIDIPageEffect, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 0.1, 5, 1.000000, 0.1) self.EffectVolumeFactorSpin.SetDigits(0) MIDIPageEffect2.Add(self.EffectVolumeFactorSpin, 0, wx.ALL, 5) MIDIPageEffectContainer.Add(MIDIPageEffect2, 0, wx.EXPAND, 5) MIDIPageEffect3 = wx.FlexGridSizer(0, 3, 0, 0) MIDIPageEffect3.SetFlexibleDirection(wx.BOTH) MIDIPageEffect3.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.EffectDoLongAnalysis = wx.CheckBox(self.MIDIPageEffect, wx.ID_ANY, u"长音分析", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectDoLongAnalysis.SetValue(True) MIDIPageEffect3.Add(self.EffectDoLongAnalysis, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.LongAnalysisThresholdPrompt = wx.StaticText( self.MIDIPageEffect, wx.ID_ANY, u"阈值(刻):", wx.DefaultPosition, wx.DefaultSize, 0) self.LongAnalysisThresholdPrompt.Wrap(-1) MIDIPageEffect3.Add(self.LongAnalysisThresholdPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.LongAnalysisThresholdSpin = wx.SpinCtrlDouble( self.MIDIPageEffect, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 1, 120, 40, 1) self.LongAnalysisThresholdSpin.SetDigits(0) MIDIPageEffect3.Add(self.LongAnalysisThresholdSpin, 0, wx.ALL, 5) MIDIPageEffectContainer.Add(MIDIPageEffect3, 0, wx.EXPAND, 5) MIDIPageEffect4 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageEffect4.SetFlexibleDirection(wx.BOTH) MIDIPageEffect4.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.MaxTickNotePrompt = wx.StaticText(self.MIDIPageEffect, wx.ID_ANY, u"单刻最大发音数:", wx.DefaultPosition, wx.DefaultSize, 0) self.MaxTickNotePrompt.Wrap(-1) MIDIPageEffect4.Add(self.MaxTickNotePrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.MaxTickNoteSpin = wx.SpinCtrl(self.MIDIPageEffect, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 1, 511, 255) MIDIPageEffect4.Add(self.MaxTickNoteSpin, 0, wx.ALL, 5) MIDIPageEffectContainer.Add(MIDIPageEffect4, 0, wx.EXPAND, 5) MIDIPageEffect5 = wx.FlexGridSizer(0, 2, 0, 0) MIDIPageEffect5.SetFlexibleDirection(wx.BOTH) MIDIPageEffect5.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.WrapLengthPrompt = wx.StaticText(self.MIDIPageEffect, wx.ID_ANY, u"折行长度(格):", wx.DefaultPosition, wx.DefaultSize, 0) self.WrapLengthPrompt.Wrap(-1) MIDIPageEffect5.Add(self.WrapLengthPrompt, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.WrapLengthSpin = wx.SpinCtrl(self.MIDIPageEffect, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.SP_ARROW_KEYS, 1, 65535, 128) MIDIPageEffect5.Add(self.WrapLengthSpin, 0, wx.ALL, 5) MIDIPageEffectContainer.Add(MIDIPageEffect5, 1, wx.EXPAND, 5) self.EffectFunctionBased = wx.CheckBox(self.MIDIPageEffect, wx.ID_ANY, u"基于函数的刻阵列(实验性)", wx.DefaultPosition, wx.DefaultSize, 0) self.EffectFunctionBased.SetValue(True) MIDIPageEffectContainer.Add(self.EffectFunctionBased, 0, wx.ALL, 5) self.MIDIPageEffect.SetSizer(MIDIPageEffectContainer) self.MIDIPageEffect.Layout() MIDIPageEffectContainer.Fit(self.MIDIPageEffect) self.MIDIPages.AddPage(self.MIDIPageEffect, u"效果与性能", False) self.MIDIPageFrontend = wx.ScrolledWindow(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.MIDIPageFrontend.SetScrollRate(5, 5) self.MIDIPageFrontend.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageFrontendContainer = wx.BoxSizer(wx.VERTICAL) self.FrontendPicker = wx.Choicebook(self.MIDIPageFrontend, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT) self.FrontendPicker.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageFrontendContainer.Add(self.FrontendPicker, 1, wx.EXPAND | wx.ALL, 5) self.MIDIPageFrontend.SetSizer(MIDIPageFrontendContainer) self.MIDIPageFrontend.Layout() MIDIPageFrontendContainer.Fit(self.MIDIPageFrontend) self.MIDIPages.AddPage(self.MIDIPageFrontend, u"前端", False) self.MIDIPagePlugins = wx.ScrolledWindow(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.MIDIPagePlugins.SetScrollRate(5, 5) self.MIDIPagePlugins.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPagePluginsContainer = wx.BoxSizer(wx.VERTICAL) PluginsListChoices = [] self.PluginsList = wx.CheckListBox(self.MIDIPagePlugins, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, PluginsListChoices, wx.LB_ALWAYS_SB | wx.LB_MULTIPLE) MIDIPagePluginsContainer.Add(self.PluginsList, 0, wx.ALL | wx.EXPAND, 5) self.PluginsPicker = wx.Choicebook(self.MIDIPagePlugins, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT) MIDIPagePluginsContainer.Add(self.PluginsPicker, 1, wx.ALL | wx.EXPAND, 5) self.MIDIPagePlugins.SetSizer(MIDIPagePluginsContainer) self.MIDIPagePlugins.Layout() MIDIPagePluginsContainer.Fit(self.MIDIPagePlugins) self.MIDIPages.AddPage(self.MIDIPagePlugins, u"插件", False) self.MIDIPageMiddles = wx.ScrolledWindow(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL | wx.VSCROLL) self.MIDIPageMiddles.SetScrollRate(5, 5) self.MIDIPageMiddles.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageMiddlesContainer = wx.BoxSizer(wx.VERTICAL) MiddlesListChoices = [] self.MiddlesList = wx.CheckListBox(self.MIDIPageMiddles, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, MiddlesListChoices, wx.LB_ALWAYS_SB | wx.LB_MULTIPLE) MIDIPageMiddlesContainer.Add(self.MiddlesList, 0, wx.ALL | wx.EXPAND, 5) self.MiddlesPicker = wx.Choicebook(self.MIDIPageMiddles, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT) MIDIPageMiddlesContainer.Add(self.MiddlesPicker, 1, wx.ALL | wx.EXPAND, 5) self.MIDIPageMiddles.SetSizer(MIDIPageMiddlesContainer) self.MIDIPageMiddles.Layout() MIDIPageMiddlesContainer.Fit(self.MIDIPageMiddles) self.MIDIPages.AddPage(self.MIDIPageMiddles, u"中间件", False) self.MIDIPageAbout = wx.Panel(self.MIDIPages, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.MIDIPageAbout.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) MIDIPageAboutContainer = wx.BoxSizer(wx.VERTICAL) self.MIDIPageAboutHTML = wx.html.HtmlWindow(self.MIDIPageAbout, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.html.HW_SCROLLBAR_AUTO) MIDIPageAboutContainer.Add(self.MIDIPageAboutHTML, 1, wx.ALL | wx.EXPAND, 5) self.MIDIPageAbout.SetSizer(MIDIPageAboutContainer) self.MIDIPageAbout.Layout() MIDIPageAboutContainer.Fit(self.MIDIPageAbout) self.MIDIPages.AddPage(self.MIDIPageAbout, u"关于", True) MainContainer.Add(self.MIDIPages, 1, wx.EXPAND | wx.ALL, 5) Bottom = wx.FlexGridSizer(0, 3, 0, 0) Bottom.SetFlexibleDirection(wx.BOTH) Bottom.SetNonFlexibleGrowMode(wx.FLEX_GROWMODE_SPECIFIED) self.Run = wx.Button(self, wx.ID_ANY, u"生成", wx.DefaultPosition, wx.DefaultSize, 0) Bottom.Add(self.Run, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.GoDefault = wx.Button(self, wx.ID_ANY, u"取消", wx.DefaultPosition, wx.DefaultSize, 0) Bottom.Add(self.GoDefault, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.ProgressBar = wx.Gauge(self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL | wx.GA_SMOOTH) self.ProgressBar.SetValue(0) Bottom.Add(self.ProgressBar, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) MainContainer.Add(Bottom, 0, wx.EXPAND, 5) self.SetSizer(MainContainer) self.Layout() self.StatusBar = self.CreateStatusBar( 1, wx.STB_ELLIPSIZE_MIDDLE | wx.STB_SIZEGRIP, wx.ID_ANY) self.Centre(wx.BOTH)
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"PDF Merger", pos=wx.DefaultPosition, size=wx.Size(589, 304), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) bSizer1 = wx.BoxSizer(wx.VERTICAL) self.m_listbook1 = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.m_panel1 = wx.Panel(self.m_listbook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer7 = wx.BoxSizer(wx.VERTICAL) bSizer2 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText1 = wx.StaticText(self.m_panel1, wx.ID_ANY, u"File 1", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText1.Wrap(-1) bSizer2.Add(self.m_staticText1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_filePicker1 = wx.FilePickerCtrl( self.m_panel1, wx.ID_ANY, wx.EmptyString, u"Select a file", u"*.pdf", wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE | wx.FLP_OPEN | wx.FLP_SMALL) bSizer2.Add(self.m_filePicker1, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_checkBox1 = wx.CheckBox(self.m_panel1, wx.ID_ANY, u"Reverse", wx.DefaultPosition, wx.DefaultSize, 0) bSizer2.Add(self.m_checkBox1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer7.Add(bSizer2, 0, wx.EXPAND, 5) bSizer3 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText2 = wx.StaticText(self.m_panel1, wx.ID_ANY, u"File 2", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText2.Wrap(-1) bSizer3.Add(self.m_staticText2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_filePicker2 = wx.FilePickerCtrl( self.m_panel1, wx.ID_ANY, wx.EmptyString, u"Select a file", u"*.pdf", wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE | wx.FLP_OPEN | wx.FLP_SMALL) bSizer3.Add(self.m_filePicker2, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_checkBox2 = wx.CheckBox(self.m_panel1, wx.ID_ANY, u"Reverse", wx.DefaultPosition, wx.DefaultSize, 0) self.m_checkBox2.SetValue(True) bSizer3.Add(self.m_checkBox2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer7.Add(bSizer3, 0, wx.EXPAND, 5) bSizer4 = wx.BoxSizer(wx.VERTICAL) m_radioBox1Choices = [u"Odd-Even", u"Append"] self.m_radioBox1 = wx.RadioBox(self.m_panel1, wx.ID_ANY, u"Merge Mode", wx.DefaultPosition, wx.DefaultSize, m_radioBox1Choices, 2, wx.RA_SPECIFY_COLS) self.m_radioBox1.SetSelection(0) bSizer4.Add(self.m_radioBox1, 1, wx.ALL | wx.EXPAND, 5) bSizer7.Add(bSizer4, 0, wx.EXPAND, 5) bSizer5 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText3 = wx.StaticText(self.m_panel1, wx.ID_ANY, u"Export", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText3.Wrap(-1) bSizer5.Add(self.m_staticText3, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_filePicker3 = wx.FilePickerCtrl( self.m_panel1, wx.ID_ANY, wx.EmptyString, u"Select a file", u"*.pdf", wx.DefaultPosition, wx.DefaultSize, wx.FLP_SAVE | wx.FLP_SMALL | wx.FLP_USE_TEXTCTRL) bSizer5.Add(self.m_filePicker3, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.mGuess = wx.Button(self.m_panel1, wx.ID_ANY, u"SameWithFile1", wx.DefaultPosition, wx.DefaultSize, 0) bSizer5.Add(self.mGuess, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer7.Add(bSizer5, 0, wx.EXPAND, 5) bSizer7.Add((0, 0), 1, wx.EXPAND, 5) bSizer6 = wx.BoxSizer(wx.VERTICAL) self.m_button2 = wx.Button(self.m_panel1, wx.ID_ANY, u"Export", wx.DefaultPosition, wx.DefaultSize, 0) bSizer6.Add(self.m_button2, 1, wx.ALL | wx.EXPAND, 5) bSizer7.Add(bSizer6, 0, wx.EXPAND, 5) self.m_panel1.SetSizer(bSizer7) self.m_panel1.Layout() bSizer7.Fit(self.m_panel1) self.m_listbook1.AddPage(self.m_panel1, u"Merger", False) self.m_panel2 = wx.Panel(self.m_listbook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer8 = wx.BoxSizer(wx.VERTICAL) bSizer9 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText4 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"File", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText4.Wrap(-1) bSizer9.Add(self.m_staticText4, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_filePicker4 = wx.FilePickerCtrl( self.m_panel2, wx.ID_ANY, wx.EmptyString, u"Select a file", u"*.pdf", wx.DefaultPosition, wx.DefaultSize, wx.FLP_DEFAULT_STYLE) bSizer9.Add(self.m_filePicker4, 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5) bSizer8.Add(bSizer9, 0, wx.EXPAND, 5) self.m_staticline1 = wx.StaticLine(self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) bSizer8.Add(self.m_staticline1, 0, wx.EXPAND | wx.ALL, 5) bSizer10 = wx.BoxSizer(wx.HORIZONTAL) bSizer13 = wx.BoxSizer(wx.VERTICAL) self.m_staticText8 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"Export", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText8.Wrap(-1) bSizer13.Add(self.m_staticText8, 0, wx.ALL, 5) bSizer11 = wx.BoxSizer(wx.HORIZONTAL) self.m_staticText6 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"Folder", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText6.Wrap(-1) bSizer11.Add(self.m_staticText6, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_dirPicker2 = wx.DirPickerCtrl( self.m_panel2, wx.ID_ANY, wx.EmptyString, u"Select a folder", wx.DefaultPosition, wx.DefaultSize, wx.DIRP_DEFAULT_STYLE) bSizer11.Add(self.m_dirPicker2, 1, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_staticText7 = wx.StaticText(self.m_panel2, wx.ID_ANY, u"Basename", wx.DefaultPosition, wx.DefaultSize, 0) self.m_staticText7.Wrap(-1) bSizer11.Add(self.m_staticText7, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) self.m_textCtrl2 = wx.TextCtrl(self.m_panel2, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) bSizer11.Add(self.m_textCtrl2, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) m_choice1Choices = [u"01", u"001", u"0001", u"00001"] self.m_choice1 = wx.Choice(self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choice1Choices, 0) self.m_choice1.SetSelection(0) bSizer11.Add(self.m_choice1, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL, 5) bSizer13.Add(bSizer11, 1, wx.EXPAND, 5) self.m_button3 = wx.Button(self.m_panel2, wx.ID_ANY, u"Guess", wx.DefaultPosition, wx.DefaultSize, 0) bSizer13.Add(self.m_button3, 0, wx.ALL, 5) bSizer10.Add(bSizer13, 1, wx.EXPAND, 5) bSizer8.Add(bSizer10, 0, wx.EXPAND, 5) bSizer15 = wx.BoxSizer(wx.VERTICAL) m_radioBox3Choices = [u"Each", u"Odd-Even"] self.m_radioBox3 = wx.RadioBox(self.m_panel2, wx.ID_ANY, u"Mode", wx.DefaultPosition, wx.DefaultSize, m_radioBox3Choices, 2, wx.RA_SPECIFY_COLS) self.m_radioBox3.SetSelection(0) bSizer15.Add(self.m_radioBox3, 0, wx.ALL | wx.EXPAND, 5) bSizer8.Add(bSizer15, 0, wx.EXPAND, 5) bSizer8.Add((0, 0), 1, wx.EXPAND, 5) bSizer14 = wx.BoxSizer(wx.VERTICAL) self.m_button4 = wx.Button(self.m_panel2, wx.ID_ANY, u"Export", wx.DefaultPosition, wx.DefaultSize, 0) bSizer14.Add(self.m_button4, 1, wx.ALL | wx.EXPAND, 5) bSizer8.Add(bSizer14, 0, wx.EXPAND, 5) self.m_panel2.SetSizer(bSizer8) self.m_panel2.Layout() bSizer8.Fit(self.m_panel2) self.m_listbook1.AddPage(self.m_panel2, u"Spliter", False) bSizer1.Add(self.m_listbook1, 1, wx.EXPAND | wx.ALL, 5) self.SetSizer(bSizer1) self.Layout() self.Centre(wx.BOTH) # Connect Events self.mGuess.Bind(wx.EVT_BUTTON, self.guessname) self.m_button2.Bind(wx.EVT_BUTTON, self.export)
def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"库存管理系统", pos = wx.DefaultPosition, size = wx.Size( 819,479 ), style = wx.DEFAULT_FRAME_STYLE|wx.MAXIMIZE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) self.m_menubar1 = wx.MenuBar( 0 ) self.m_menu2 = wx.Menu() self.m_menuItem1 = wx.MenuItem( self.m_menu2, wx.ID_ANY, u"退出", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu2.AppendItem( self.m_menuItem1 ) self.m_menubar1.Append( self.m_menu2, u"文件" ) self.m_menu5 = wx.Menu() self.m_menuItem3 = wx.MenuItem( self.m_menu5, wx.ID_ANY, u"管理产品型号", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu5.AppendItem( self.m_menuItem3 ) self.m_menuItem4 = wx.MenuItem( self.m_menu5, wx.ID_ANY, u"管理买家数据", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu5.AppendItem( self.m_menuItem4 ) self.m_menubar1.Append( self.m_menu5, u"管理" ) self.m_menu3 = wx.Menu() self.m_menuItem2 = wx.MenuItem( self.m_menu3, wx.ID_ANY, u"关于", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu3.AppendItem( self.m_menuItem2 ) self.m_menubar1.Append( self.m_menu3, u"帮助" ) self.SetMenuBar( self.m_menubar1 ) bSizer1 = wx.BoxSizer( wx.HORIZONTAL ) self.m_splitter1 = wx.SplitterWindow( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D|wx.SP_3DBORDER|wx.SP_3DSASH ) self.m_splitter1.Bind( wx.EVT_IDLE, self.m_splitter1OnIdle ) self.m_panel2 = wx.Panel( self.m_splitter1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer4 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText1 = wx.StaticText( self.m_panel2, wx.ID_ANY, u"查询", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText1.Wrap( -1 ) self.m_staticText1.SetFont( wx.Font( 9, 74, 90, 92, False, wx.EmptyString ) ) self.m_staticText1.SetBackgroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_ACTIVECAPTION ) ) bSizer4.Add( self.m_staticText1, 0, wx.ALL|wx.EXPAND, 0 ) self.m_listbook2 = wx.Listbook( self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT ) self.m_panel20 = wx.Panel( self.m_listbook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer27 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText49 = wx.StaticText( self.m_panel20, wx.ID_ANY, u"说明:查询一段时间内的销售总额明细", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText49.Wrap( -1 ) self.m_staticText49.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) bSizer27.Add( self.m_staticText49, 0, wx.ALL, 5 ) sbSizer1 = wx.StaticBoxSizer( wx.StaticBox( self.m_panel20, wx.ID_ANY, u"时间条件" ), wx.VERTICAL ) fgSizer1 = wx.FlexGridSizer( 0, 2, 0, 0 ) fgSizer1.SetFlexibleDirection( wx.BOTH ) fgSizer1.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_staticText3 = wx.StaticText( self.m_panel20, wx.ID_ANY, u"开始:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText3.Wrap( -1 ) fgSizer1.Add( self.m_staticText3, 0, wx.ALL, 5 ) self.m_datePicker1 = wx.DatePickerCtrl( self.m_panel20, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer1.Add( self.m_datePicker1, 0, wx.ALL, 5 ) self.m_staticText4 = wx.StaticText( self.m_panel20, wx.ID_ANY, u"结束:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText4.Wrap( -1 ) fgSizer1.Add( self.m_staticText4, 0, wx.ALL, 5 ) self.m_datePicker2 = wx.DatePickerCtrl( self.m_panel20, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer1.Add( self.m_datePicker2, 0, wx.ALL, 5 ) sbSizer1.Add( fgSizer1, 1, wx.EXPAND, 5 ) bSizer27.Add( sbSizer1, 0, wx.EXPAND, 5 ) self.m_button2 = wx.Button( self.m_panel20, wx.ID_ANY, u"查询", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer27.Add( self.m_button2, 0, wx.ALIGN_CENTER|wx.ALL, 5 ) self.m_panel20.SetSizer( bSizer27 ) self.m_panel20.Layout() bSizer27.Fit( self.m_panel20 ) self.m_listbook2.AddPage( self.m_panel20, u"销售总额查询", True ) self.m_panel21 = wx.Panel( self.m_listbook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer28 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText50 = wx.StaticText( self.m_panel21, wx.ID_ANY, u"说明:查询某产品的销售明细", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText50.Wrap( -1 ) self.m_staticText50.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) bSizer28.Add( self.m_staticText50, 0, wx.ALL, 5 ) self.m_button21 = wx.Button( self.m_panel21, wx.ID_ANY, u"查询", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer28.Add( self.m_button21, 0, wx.ALL, 5 ) sbSizer11 = wx.StaticBoxSizer( wx.StaticBox( self.m_panel21, wx.ID_ANY, u"时间条件" ), wx.VERTICAL ) fgSizer11 = wx.FlexGridSizer( 0, 2, 0, 0 ) fgSizer11.SetFlexibleDirection( wx.BOTH ) fgSizer11.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_staticText31 = wx.StaticText( self.m_panel21, wx.ID_ANY, u"开始:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText31.Wrap( -1 ) fgSizer11.Add( self.m_staticText31, 0, wx.ALL, 5 ) self.m_datePicker11 = wx.DatePickerCtrl( self.m_panel21, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer11.Add( self.m_datePicker11, 0, wx.ALL, 5 ) self.m_staticText41 = wx.StaticText( self.m_panel21, wx.ID_ANY, u"结束:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText41.Wrap( -1 ) fgSizer11.Add( self.m_staticText41, 0, wx.ALL, 5 ) self.m_datePicker21 = wx.DatePickerCtrl( self.m_panel21, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer11.Add( self.m_datePicker21, 0, wx.ALL, 5 ) sbSizer11.Add( fgSizer11, 1, wx.EXPAND, 5 ) bSizer28.Add( sbSizer11, 0, wx.EXPAND, 5 ) self.m_choicebook2 = wx.Choicebook( self.m_panel21, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.CHB_DEFAULT ) self.m_panel24 = wx.Panel( self.m_choicebook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer30 = wx.BoxSizer( wx.VERTICAL ) bSizer33 = wx.BoxSizer( wx.HORIZONTAL ) self.m_checkBox5 = wx.CheckBox( self.m_panel24, wx.ID_ANY, u"全部选中", wx.DefaultPosition, wx.DefaultSize, wx.CHK_2STATE ) bSizer33.Add( self.m_checkBox5, 0, wx.ALL, 5 ) bSizer30.Add( bSizer33, 0, wx.EXPAND, 5 ) self.m_scrolledWindow2 = wx.ScrolledWindow( self.m_panel24, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow2.SetScrollRate( 5, 5 ) fgSizer7 = wx.FlexGridSizer( 0, 1, 0, 0 ) fgSizer7.SetFlexibleDirection( wx.BOTH ) fgSizer7.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_scrolledWindow2.SetSizer( fgSizer7 ) self.m_scrolledWindow2.Layout() fgSizer7.Fit( self.m_scrolledWindow2 ) bSizer30.Add( self.m_scrolledWindow2, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel24.SetSizer( bSizer30 ) self.m_panel24.Layout() bSizer30.Fit( self.m_panel24 ) self.m_choicebook2.AddPage( self.m_panel24, u"白膜", False ) self.m_panel25 = wx.Panel( self.m_choicebook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer301 = wx.BoxSizer( wx.VERTICAL ) bSizer331 = wx.BoxSizer( wx.HORIZONTAL ) self.m_checkBox51 = wx.CheckBox( self.m_panel25, wx.ID_ANY, u"全部选中", wx.DefaultPosition, wx.DefaultSize, wx.CHK_2STATE ) bSizer331.Add( self.m_checkBox51, 0, wx.ALL, 5 ) bSizer301.Add( bSizer331, 0, wx.EXPAND, 5 ) self.m_scrolledWindow21 = wx.ScrolledWindow( self.m_panel25, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow21.SetScrollRate( 5, 5 ) fgSizer71 = wx.FlexGridSizer( 0, 1, 0, 0 ) fgSizer71.SetFlexibleDirection( wx.BOTH ) fgSizer71.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_scrolledWindow21.SetSizer( fgSizer71 ) self.m_scrolledWindow21.Layout() fgSizer71.Fit( self.m_scrolledWindow21 ) bSizer301.Add( self.m_scrolledWindow21, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel25.SetSizer( bSizer301 ) self.m_panel25.Layout() bSizer301.Fit( self.m_panel25 ) self.m_choicebook2.AddPage( self.m_panel25, u"蜂窝纸", False ) self.m_panel26 = wx.Panel( self.m_choicebook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer302 = wx.BoxSizer( wx.VERTICAL ) bSizer332 = wx.BoxSizer( wx.HORIZONTAL ) self.m_checkBox52 = wx.CheckBox( self.m_panel26, wx.ID_ANY, u"全部选中", wx.DefaultPosition, wx.DefaultSize, wx.CHK_2STATE ) bSizer332.Add( self.m_checkBox52, 0, wx.ALL, 5 ) bSizer302.Add( bSizer332, 0, wx.EXPAND, 5 ) self.m_scrolledWindow22 = wx.ScrolledWindow( self.m_panel26, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow22.SetScrollRate( 5, 5 ) fgSizer72 = wx.FlexGridSizer( 0, 1, 0, 0 ) fgSizer72.SetFlexibleDirection( wx.BOTH ) fgSizer72.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_scrolledWindow22.SetSizer( fgSizer72 ) self.m_scrolledWindow22.Layout() fgSizer72.Fit( self.m_scrolledWindow22 ) bSizer302.Add( self.m_scrolledWindow22, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel26.SetSizer( bSizer302 ) self.m_panel26.Layout() bSizer302.Fit( self.m_panel26 ) self.m_choicebook2.AddPage( self.m_panel26, u"木板", False ) bSizer28.Add( self.m_choicebook2, 1, wx.EXPAND |wx.ALL, 5 ) self.m_panel21.SetSizer( bSizer28 ) self.m_panel21.Layout() bSizer28.Fit( self.m_panel21 ) self.m_listbook2.AddPage( self.m_panel21, u"产品相关查询", False ) self.m_panel22 = wx.Panel( self.m_listbook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer29 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText51 = wx.StaticText( self.m_panel22, wx.ID_ANY, u"说明:查询与某买家的交易明细", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText51.Wrap( 0 ) self.m_staticText51.SetForegroundColour( wx.SystemSettings.GetColour( wx.SYS_COLOUR_HIGHLIGHT ) ) bSizer29.Add( self.m_staticText51, 0, wx.ALL, 5 ) fgSizer6 = wx.FlexGridSizer( 0, 1, 0, 0 ) fgSizer6.SetFlexibleDirection( wx.BOTH ) fgSizer6.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) bSizer29.Add( fgSizer6, 0, wx.EXPAND, 5 ) self.m_button22 = wx.Button( self.m_panel22, wx.ID_ANY, u"查询", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer29.Add( self.m_button22, 0, wx.ALL, 5 ) sbSizer111 = wx.StaticBoxSizer( wx.StaticBox( self.m_panel22, wx.ID_ANY, u"时间条件" ), wx.VERTICAL ) fgSizer111 = wx.FlexGridSizer( 0, 2, 0, 0 ) fgSizer111.SetFlexibleDirection( wx.BOTH ) fgSizer111.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) self.m_staticText311 = wx.StaticText( self.m_panel22, wx.ID_ANY, u"开始:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText311.Wrap( -1 ) fgSizer111.Add( self.m_staticText311, 0, wx.ALL, 5 ) self.m_datePicker111 = wx.DatePickerCtrl( self.m_panel22, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer111.Add( self.m_datePicker111, 0, wx.ALL, 5 ) self.m_staticText411 = wx.StaticText( self.m_panel22, wx.ID_ANY, u"结束:", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText411.Wrap( -1 ) fgSizer111.Add( self.m_staticText411, 0, wx.ALL, 5 ) self.m_datePicker211 = wx.DatePickerCtrl( self.m_panel22, wx.ID_ANY, wx.DefaultDateTime, wx.DefaultPosition, wx.DefaultSize, wx.DP_DEFAULT|wx.DP_DROPDOWN ) fgSizer111.Add( self.m_datePicker211, 0, wx.ALL, 5 ) sbSizer111.Add( fgSizer111, 1, wx.EXPAND, 5 ) bSizer29.Add( sbSizer111, 0, wx.EXPAND, 5 ) bSizer303 = wx.BoxSizer( wx.VERTICAL ) self.m_scrolledWindow23 = wx.ScrolledWindow( self.m_panel22, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.HSCROLL|wx.VSCROLL ) self.m_scrolledWindow23.SetScrollRate( 5, 5 ) fgSizer73 = wx.FlexGridSizer( 0, 1, 0, 0 ) fgSizer73.SetFlexibleDirection( wx.BOTH ) fgSizer73.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) m_radioBox1Choices = [ u"买家1" ] self.m_radioBox1 = wx.RadioBox( self.m_scrolledWindow23, wx.ID_ANY, u"买家", wx.DefaultPosition, wx.DefaultSize, m_radioBox1Choices, 100, wx.RA_SPECIFY_ROWS ) self.m_radioBox1.SetSelection( 0 ) fgSizer73.Add( self.m_radioBox1, 1, wx.ALL|wx.EXPAND, 5 ) self.m_scrolledWindow23.SetSizer( fgSizer73 ) self.m_scrolledWindow23.Layout() fgSizer73.Fit( self.m_scrolledWindow23 ) bSizer303.Add( self.m_scrolledWindow23, 1, wx.ALL|wx.EXPAND, 5 ) bSizer29.Add( bSizer303, 1, wx.EXPAND, 5 ) self.m_panel22.SetSizer( bSizer29 ) self.m_panel22.Layout() bSizer29.Fit( self.m_panel22 ) self.m_listbook2.AddPage( self.m_panel22, u"买家相关查询", False ) bSizer4.Add( self.m_listbook2, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel2.SetSizer( bSizer4 ) self.m_panel2.Layout() bSizer4.Fit( self.m_panel2 ) self.m_panel3 = wx.Panel( self.m_splitter1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_panel3.SetFont( wx.Font( 9, 74, 90, 92, False, wx.EmptyString ) ) bSizer3 = wx.BoxSizer( wx.VERTICAL ) self.m_auinotebook1 = wx.aui.AuiNotebook( self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.aui.AUI_NB_CLOSE_ON_ALL_TABS|wx.aui.AUI_NB_DEFAULT_STYLE ) self.m_panel5 = wx.Panel( self.m_auinotebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer41 = wx.BoxSizer( wx.VERTICAL ) self.m_grid1 = wx.grid.Grid( self.m_panel5, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0 ) # Grid self.m_grid1.CreateGrid( 0, 0 ) self.m_grid1.EnableEditing( False ) self.m_grid1.EnableGridLines( True ) self.m_grid1.SetGridLineColour( wx.Colour( 128, 128, 0 ) ) self.m_grid1.EnableDragGridSize( False ) self.m_grid1.SetMargins( 0, 0 ) # Columns self.m_grid1.EnableDragColMove( False ) self.m_grid1.EnableDragColSize( True ) self.m_grid1.SetColLabelSize( 30 ) self.m_grid1.SetColLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Rows self.m_grid1.AutoSizeRows() self.m_grid1.EnableDragRowSize( True ) self.m_grid1.SetRowLabelSize( 40 ) self.m_grid1.SetRowLabelAlignment( wx.ALIGN_CENTRE, wx.ALIGN_CENTRE ) # Label Appearance # Cell Defaults self.m_grid1.SetDefaultCellAlignment( wx.ALIGN_LEFT, wx.ALIGN_TOP ) bSizer41.Add( self.m_grid1, 1, wx.ALL|wx.EXPAND, 0 ) self.m_panel5.SetSizer( bSizer41 ) self.m_panel5.Layout() bSizer41.Fit( self.m_panel5 ) self.m_auinotebook1.AddPage( self.m_panel5, u"数据", False, wx.NullBitmap ) self.m_panel6 = wx.Panel( self.m_auinotebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) self.m_auinotebook1.AddPage( self.m_panel6, u"报表", False, wx.NullBitmap ) bSizer3.Add( self.m_auinotebook1, 1, wx.EXPAND |wx.ALL, 0 ) self.m_panel3.SetSizer( bSizer3 ) self.m_panel3.Layout() bSizer3.Fit( self.m_panel3 ) self.m_splitter1.SplitVertically( self.m_panel2, self.m_panel3, 332 ) bSizer1.Add( self.m_splitter1, 1, wx.EXPAND, 5 ) self.SetSizer( bSizer1 ) self.Layout() self.m_statusBar1 = self.CreateStatusBar( 1, wx.ST_SIZEGRIP, wx.ID_ANY ) self.Centre( wx.BOTH ) # Connect Events self.Bind( wx.EVT_MENU, self.OnExit, id = self.m_menuItem1.GetId() ) self.Bind( wx.EVT_MENU, self.OnAddProductBaseInfo, id = self.m_menuItem3.GetId() ) self.Bind( wx.EVT_MENU, self.OnManagerBuyers, id = self.m_menuItem4.GetId() ) self.Bind( wx.EVT_MENU, self.OnAbout, id = self.m_menuItem2.GetId() ) self.m_button2.Bind( wx.EVT_BUTTON, self.OnSearch ) self.m_button21.Bind( wx.EVT_BUTTON, self.OnSearch ) self.m_choicebook2.Bind( wx.EVT_CHOICEBOOK_PAGE_CHANGED, self.OnChoiceCategoryChanged ) self.m_checkBox5.Bind( wx.EVT_CHECKBOX, self.OnCheckBoxSelectAllProductTypes ) self.m_checkBox51.Bind( wx.EVT_CHECKBOX, self.OnCheckBoxSelectAllProductTypes ) self.m_checkBox52.Bind( wx.EVT_CHECKBOX, self.OnCheckBoxSelectAllProductTypes ) self.m_button22.Bind( wx.EVT_BUTTON, self.OnSearch ) self.m_auinotebook1.Bind( wx.aui.EVT_AUINOTEBOOK_PAGE_CLOSE, self.OnNoteBookClose ) self.m_grid1.Bind( wx.grid.EVT_GRID_CELL_RIGHT_CLICK, self.OnCellRightClick ) self.m_grid1.Bind( wx.grid.EVT_GRID_LABEL_LEFT_CLICK, self.OnGridLabelLeftClick )
def __init__(self, parent): wx.Dialog.__init__(self, parent, id=wx.ID_ANY, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE) self.SetTitle("pyfa - Preferences") i = wx.IconFromBitmap( bitmapLoader.getBitmap("preferences_small", "icons")) self.SetIcon(i) mainSizer = wx.BoxSizer(wx.VERTICAL) self.listbook = wx.Listbook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.listview = self.listbook.GetListView() self.listview.SetMinSize((500, -1)) self.listview.SetSize((500, -1)) self.imageList = wx.ImageList(32, 32) self.listbook.SetImageList(self.imageList) mainSizer.Add(self.listbook, 1, wx.EXPAND | wx.TOP | wx.BOTTOM | wx.LEFT, 5) self.m_staticline2 = wx.StaticLine(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LI_HORIZONTAL) mainSizer.Add(self.m_staticline2, 0, wx.EXPAND, 5) btnSizer = wx.BoxSizer(wx.HORIZONTAL) btnSizer.AddSpacer((0, 0), 1, wx.EXPAND, 5) self.btnOK = wx.Button(self, wx.ID_ANY, u"OK", wx.DefaultPosition, wx.DefaultSize, 0) btnSizer.Add(self.btnOK, 0, wx.ALL, 5) mainSizer.Add(btnSizer, 0, wx.EXPAND, 5) self.SetSizer(mainSizer) self.Centre(wx.BOTH) for prefView in PreferenceView.views: page = wx.Panel(self.listbook) bmp = prefView.getImage() if bmp: imgID = self.imageList.Add(bmp) else: imgID = -1 prefView.populatePanel(page) self.listbook.AddPage(page, prefView.title, imageId=imgID) # Set the height based on a condition. Can all the panels fit in the current height? # If not, use the .GetBestVirtualSize() to ensure that all content is available. minHeight = 360 bestFit = self.GetBestVirtualSize() if minHeight > bestFit[1]: self.SetSizeWH(450, minHeight) else: self.SetSizeWH(450, bestFit[1]) self.Layout() self.btnOK.Bind(wx.EVT_BUTTON, self.OnBtnOK)
def __init__(self, parent): wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=u"XaaS Automation © MMXIX", pos=wx.DefaultPosition, size=wx.Size(1000, 749), style=wx.DEFAULT_FRAME_STYLE | wx.STAY_ON_TOP | wx.TAB_TRAVERSAL) self.SetSizeHints(wx.DefaultSize, wx.DefaultSize) self.SetFont( wx.Font(9, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, wx.EmptyString)) self.app_menu = wx.MenuBar(0) self.script = wx.Menu() self.app_menu.Append(self.script, u"Script") self.SetMenuBar(self.app_menu) bSizer7 = wx.BoxSizer(wx.VERTICAL) bSizer15 = wx.BoxSizer(wx.HORIZONTAL) bSizer15.SetMinSize(wx.Size(-1, 0)) self.m_bitmap1 = wx.StaticBitmap( self, wx.ID_ANY, wx.Bitmap(u"res/logo apct heigh 50.png", wx.BITMAP_TYPE_ANY), wx.DefaultPosition, wx.DefaultSize, 0) self.m_bitmap1.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW)) self.m_bitmap1.SetMinSize(wx.Size(230, 54)) bSizer15.Add(self.m_bitmap1, 0, wx.ALL, 1) self.m_toolBar1 = wx.ToolBar(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TB_HORIZONTAL) self.m_toolBar1.SetToolBitmapSize(wx.Size(-1, 43)) self.m_toolBar1.AddSeparator() self.tool_home = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/xaas_logo_32.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Job Home Page", None) self.tool_input = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/input.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Input Scripts", None) self.tool_cleanup = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/cleanup.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Clean Up / Netlist", None) self.tool_analysis = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/analyze.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"DFM Analysis", None) self.tool_edit = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/pcb.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Prod Edit", None) self.m_tool11 = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/panel.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Coupons & Panel", None) self.tool_targets = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/targets.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Overlay & Targets", None) self.m_tool12 = self.m_toolBar1.AddTool( wx.ID_ANY, u"tool", wx.Bitmap(u"res/output.png", wx.BITMAP_TYPE_ANY), wx.NullBitmap, wx.ITEM_NORMAL, wx.EmptyString, u"Output System", None) self.m_toolBar1.AddSeparator() self.m_toolBar1.AddSeparator() self.t_head_home = wx.StaticText(self.m_toolBar1, wx.ID_ANY, u"PyCAM Scripting System v 0.1", wx.DefaultPosition, wx.DefaultSize, 0) self.t_head_home.Wrap(-1) self.t_head_home.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_toolBar1.AddControl(self.t_head_home) self.m_toolBar1.Realize() bSizer15.Add(self.m_toolBar1, 1, wx.EXPAND, 0) bSizer8 = wx.BoxSizer(wx.VERTICAL) bSizer15.Add(bSizer8, 1, wx.EXPAND, 5) bSizer7.Add(bSizer15, 0, wx.EXPAND, 0) self.app_book = wx.Simplebook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0) self.page_0 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.bSizer18 = wx.BoxSizer(wx.VERTICAL) self.lb_home = wx.Listbook(self.page_0, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.m_panel11 = wx.Panel(self.lb_home, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) self.lb_home.AddPage(self.m_panel11, u"Summary", True) self.m_panel9 = wx.Panel(self.lb_home, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer20 = wx.BoxSizer(wx.VERTICAL) self.m_textCtrl4 = wx.TextCtrl(self.m_panel9, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) bSizer20.Add(self.m_textCtrl4, 1, wx.ALL | wx.EXPAND, 1) bSizer22 = wx.BoxSizer(wx.HORIZONTAL) bSizer22.SetMinSize(wx.Size(-1, 50)) self.m_button3 = wx.Button(self.m_panel9, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0) bSizer22.Add(self.m_button3, 0, wx.ALL | wx.EXPAND, 0) self.m_button4 = wx.Button(self.m_panel9, wx.ID_ANY, u"MyButton", wx.DefaultPosition, wx.DefaultSize, 0) bSizer22.Add(self.m_button4, 0, wx.ALL | wx.EXPAND, 0) bSizer20.Add(bSizer22, 0, wx.EXPAND, 0) self.m_panel9.SetSizer(bSizer20) self.m_panel9.Layout() bSizer20.Fit(self.m_panel9) self.lb_home.AddPage(self.m_panel9, u"Job Log", False) self.m_panel10 = wx.Panel(self.lb_home, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer21 = wx.BoxSizer(wx.VERTICAL) self.m_panel10.SetSizer(bSizer21) self.m_panel10.Layout() bSizer21.Fit(self.m_panel10) self.lb_home.AddPage(self.m_panel10, u"Job Notes", False) self.bSizer18.Add(self.lb_home, 1, wx.EXPAND | wx.ALL, 3) self.page_0.SetSizer(self.bSizer18) self.page_0.Layout() self.bSizer18.Fit(self.page_0) self.app_book.AddPage(self.page_0, u"a page", False) self.page_1 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer12 = wx.BoxSizer(wx.VERTICAL) self.m_staticText6 = wx.StaticText(self.page_1, wx.ID_ANY, u"TBD INPUT", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText6.Wrap(-1) self.m_staticText6.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText6.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer12.Add(self.m_staticText6, 0, wx.ALL | wx.EXPAND, 0) self.page_1.SetSizer(bSizer12) self.page_1.Layout() bSizer12.Fit(self.page_1) self.app_book.AddPage(self.page_1, u"a page", False) self.page_2 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer123 = wx.BoxSizer(wx.VERTICAL) self.m_staticText63 = wx.StaticText(self.page_2, wx.ID_ANY, u"TBD CLEAN UP", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText63.Wrap(-1) self.m_staticText63.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText63.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer123.Add(self.m_staticText63, 0, wx.ALL | wx.EXPAND, 0) self.page_2.SetSizer(bSizer123) self.page_2.Layout() bSizer123.Fit(self.page_2) self.app_book.AddPage(self.page_2, u"a page", False) self.page_3 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer1231 = wx.BoxSizer(wx.VERTICAL) self.m_staticText631 = wx.StaticText(self.page_3, wx.ID_ANY, u"TBD ANALYSIS", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText631.Wrap(-1) self.m_staticText631.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText631.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer1231.Add(self.m_staticText631, 0, wx.ALL | wx.EXPAND, 0) self.page_3.SetSizer(bSizer1231) self.page_3.Layout() bSizer1231.Fit(self.page_3) self.app_book.AddPage(self.page_3, u"a page", False) self.page_4 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer121 = wx.BoxSizer(wx.VERTICAL) self.m_staticText61 = wx.StaticText(self.page_4, wx.ID_ANY, u"TBD PROD", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText61.Wrap(-1) self.m_staticText61.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText61.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer121.Add(self.m_staticText61, 0, wx.ALL | wx.EXPAND, 0) self.page_4.SetSizer(bSizer121) self.page_4.Layout() bSizer121.Fit(self.page_4) self.app_book.AddPage(self.page_4, u"a page", False) self.page_5 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer122 = wx.BoxSizer(wx.VERTICAL) self.m_staticText62 = wx.StaticText(self.page_5, wx.ID_ANY, u"TBD CPNs PANEL", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText62.Wrap(-1) self.m_staticText62.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText62.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer122.Add(self.m_staticText62, 0, wx.ALL | wx.EXPAND, 0) self.page_5.SetSizer(bSizer122) self.page_5.Layout() bSizer122.Fit(self.page_5) self.app_book.AddPage(self.page_5, u"a page", False) self.page_6 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bx_targets = wx.BoxSizer(wx.VERTICAL) self.m_listbook121 = wx.Listbook(self.page_6, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT) self.pn_di_app = wx.Panel(self.m_listbook121, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bx_tgt_app = wx.BoxSizer(wx.HORIZONTAL) bSizer211 = wx.BoxSizer(wx.VERTICAL) self.g_di_layers = wx.grid.Grid(self.pn_di_app, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0) # Grid self.g_di_layers.CreateGrid(0, 5) self.g_di_layers.EnableEditing(True) self.g_di_layers.EnableGridLines(True) self.g_di_layers.EnableDragGridSize(False) self.g_di_layers.SetMargins(0, 0) # Columns self.g_di_layers.EnableDragColMove(False) self.g_di_layers.EnableDragColSize(True) self.g_di_layers.SetColLabelSize(30) self.g_di_layers.SetColLabelAlignment(wx.ALIGN_CENTER, wx.ALIGN_CENTER) # Rows self.g_di_layers.EnableDragRowSize(True) self.g_di_layers.SetRowLabelSize(80) self.g_di_layers.SetRowLabelAlignment(wx.ALIGN_CENTER, wx.ALIGN_CENTER) # Label Appearance # Cell Defaults self.g_di_layers.SetDefaultCellAlignment(wx.ALIGN_LEFT, wx.ALIGN_TOP) bSizer211.Add(self.g_di_layers, 1, wx.ALL | wx.EXPAND, 5) bSizer221 = wx.BoxSizer(wx.HORIZONTAL) bSizer221.SetMinSize(wx.Size(-1, 50)) self.bt_di_save = wx.Button(self.pn_di_app, wx.ID_ANY, u"Save", wx.DefaultPosition, wx.DefaultSize, 0) self.bt_di_save.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer221.Add(self.bt_di_save, 1, wx.ALL | wx.EXPAND, 2) self.bt_di_undo = wx.Button(self.pn_di_app, wx.ID_ANY, u"Reload", wx.DefaultPosition, wx.DefaultSize, 0) self.bt_di_undo.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer221.Add(self.bt_di_undo, 1, wx.ALL | wx.EXPAND, 2) self.bt_di_undo1 = wx.Button(self.pn_di_app, wx.ID_ANY, u"Close", wx.DefaultPosition, wx.DefaultSize, 0) self.bt_di_undo1.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer221.Add(self.bt_di_undo1, 1, wx.ALL | wx.EXPAND, 2) bSizer211.Add(bSizer221, 0, wx.EXPAND, 1) bx_tgt_app.Add(bSizer211, 1, wx.EXPAND, 1) bSizer23 = wx.BoxSizer(wx.VERTICAL) self.m_staticText22 = wx.StaticText( self.pn_di_app, wx.ID_ANY, u"Select Target Set", wx.DefaultPosition, wx.Size(-1, 27), wx.ALIGN_CENTER_HORIZONTAL | wx.BORDER_THEME) self.m_staticText22.Wrap(-1) self.m_staticText22.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer23.Add(self.m_staticText22, 0, wx.ALL | wx.EXPAND, 5) bSizer23.Add((0, 5), 0, 0, 5) self.tx_di_set1 = wx.StaticText(self.pn_di_app, wx.ID_ANY, u"Target Set A", wx.DefaultPosition, wx.DefaultSize, 0) self.tx_di_set1.Wrap(-1) self.tx_di_set1.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer23.Add(self.tx_di_set1, 0, wx.ALL, 5) ch_di_set1Choices = [] self.ch_di_set1 = wx.Choice(self.pn_di_app, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ch_di_set1Choices, 0) self.ch_di_set1.SetSelection(0) self.ch_di_set1.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Arial")) bSizer23.Add(self.ch_di_set1, 0, wx.ALL | wx.EXPAND, 5) self.tx_di_set2 = wx.StaticText(self.pn_di_app, wx.ID_ANY, u"Target Set B", wx.DefaultPosition, wx.DefaultSize, 0) self.tx_di_set2.Wrap(-1) self.tx_di_set2.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer23.Add(self.tx_di_set2, 0, wx.ALL, 5) ch_di_set2Choices = [] self.ch_di_set2 = wx.Choice(self.pn_di_app, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ch_di_set2Choices, 0) self.ch_di_set2.SetSelection(0) self.ch_di_set2.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Arial")) bSizer23.Add(self.ch_di_set2, 0, wx.ALL | wx.EXPAND, 5) self.tx_di_set3 = wx.StaticText(self.pn_di_app, wx.ID_ANY, u"Target Set C", wx.DefaultPosition, wx.DefaultSize, 0) self.tx_di_set3.Wrap(-1) self.tx_di_set3.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer23.Add(self.tx_di_set3, 0, wx.ALL, 5) ch_di_set3Choices = [] self.ch_di_set3 = wx.Choice(self.pn_di_app, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ch_di_set3Choices, 0) self.ch_di_set3.SetSelection(0) self.ch_di_set3.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Arial")) bSizer23.Add(self.ch_di_set3, 0, wx.ALL | wx.EXPAND, 5) self.tx_di_set4 = wx.StaticText(self.pn_di_app, wx.ID_ANY, u"Target Set D", wx.DefaultPosition, wx.DefaultSize, 0) self.tx_di_set4.Wrap(-1) self.tx_di_set4.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bSizer23.Add(self.tx_di_set4, 0, wx.ALL, 5) ch_di_set4Choices = [] self.ch_di_set4 = wx.Choice(self.pn_di_app, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, ch_di_set4Choices, 0) self.ch_di_set4.SetSelection(0) self.ch_di_set4.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Arial")) bSizer23.Add(self.ch_di_set4, 0, wx.ALL | wx.EXPAND, 5) bSizer23.Add((0, 30), 0, 0, 5) bx_di_cmds = wx.BoxSizer(wx.HORIZONTAL) bx_di_cmds.SetMinSize(wx.Size(-1, 50)) self.m_button10 = wx.Button(self.pn_di_app, wx.ID_ANY, u"Apply Target Sets", wx.DefaultPosition, wx.DefaultSize, 0) self.m_button10.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bx_di_cmds.Add(self.m_button10, 1, wx.ALL | wx.EXPAND, 2) self.m_button11 = wx.Button(self.pn_di_app, wx.ID_ANY, u"Remove All DI Tg", wx.DefaultPosition, wx.DefaultSize, 0) self.m_button11.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD, False, "Arial")) bx_di_cmds.Add(self.m_button11, 1, wx.ALL | wx.EXPAND, 2) bSizer23.Add(bx_di_cmds, 0, wx.EXPAND, 5) bx_tgt_app.Add(bSizer23, 1, wx.EXPAND, 5) self.pn_di_app.SetSizer(bx_tgt_app) self.pn_di_app.Layout() bx_tgt_app.Fit(self.pn_di_app) self.m_listbook121.AddPage(self.pn_di_app, u"DI Targets", False) bx_targets.Add(self.m_listbook121, 1, wx.EXPAND | wx.ALL, 2) self.page_6.SetSizer(bx_targets) self.page_6.Layout() bx_targets.Fit(self.page_6) self.app_book.AddPage(self.page_6, u"a page", False) self.page_7 = wx.Panel(self.app_book, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL) bSizer12311 = wx.BoxSizer(wx.VERTICAL) self.m_staticText6311 = wx.StaticText(self.page_7, wx.ID_ANY, u"TBD OUTPUT", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_CENTER_HORIZONTAL) self.m_staticText6311.Wrap(-1) self.m_staticText6311.SetFont( wx.Font(24, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_ITALIC, wx.FONTWEIGHT_NORMAL, False, "Arial Narrow")) self.m_staticText6311.SetBackgroundColour( wx.SystemSettings.GetColour(wx.SYS_COLOUR_INFOBK)) bSizer12311.Add(self.m_staticText6311, 0, wx.ALL | wx.EXPAND, 0) self.page_7.SetSizer(bSizer12311) self.page_7.Layout() bSizer12311.Fit(self.page_7) self.app_book.AddPage(self.page_7, u"a page", False) bSizer7.Add(self.app_book, 1, wx.ALL | wx.EXPAND, 1) self.SetSizer(bSizer7) self.Layout() self.sb_status = self.CreateStatusBar(1, wx.STB_SIZEGRIP, wx.ID_ANY) self.sb_status.SetFont( wx.Font(12, wx.FONTFAMILY_SWISS, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_NORMAL, False, "Arial")) self.Centre(wx.BOTH) # Connect Events self.m_bitmap1.Bind(wx.EVT_LEFT_UP, self.exit_script) self.Bind(wx.EVT_TOOL, self.activate_home, id=self.tool_home.GetId()) self.Bind(wx.EVT_TOOL_ENTER, self.exec_tool_enter, id=self.tool_home.GetId()) self.Bind(wx.EVT_TOOL, self.activate_input, id=self.tool_input.GetId()) self.Bind(wx.EVT_TOOL, self.activate_cleanup, id=self.tool_cleanup.GetId()) self.Bind(wx.EVT_TOOL, self.activate_analysis, id=self.tool_analysis.GetId()) self.Bind(wx.EVT_TOOL, self.activate_edit, id=self.tool_edit.GetId()) self.Bind(wx.EVT_TOOL, self.activate_panel, id=self.m_tool11.GetId()) self.Bind(wx.EVT_TOOL, self.activate_targets, id=self.tool_targets.GetId()) self.Bind(wx.EVT_TOOL, self.activate_output, id=self.m_tool12.GetId()) self.bt_di_save.Bind(wx.EVT_LEFT_UP, self.cmd_save) self.bt_di_undo1.Bind(wx.EVT_LEFT_UP, self.exit_script)
def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = u"碧蓝航线立绘还原", pos = wx.DefaultPosition, size = wx.Size( 1158,758 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) self.m_menubar2 = wx.MenuBar( 0 ) self.menu_file = wx.Menu() self.m_menu_file = wx.Menu() self.m_menuItem1 = wx.MenuItem( self.m_menu_file, wx.ID_ANY, u"加载 Texture2D 文件", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_file.AppendItem( self.m_menuItem1 ) self.m_menuItem2 = wx.MenuItem( self.m_menu_file, wx.ID_ANY, u"加载 Mesh 文件", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_file.AppendItem( self.m_menuItem2 ) self.menu_file.AppendSubMenu( self.m_menu_file, u"加载文件" ) self.m_menu_fold = wx.Menu() self.m_menuItem_mix = wx.MenuItem( self.m_menu_fold, wx.ID_ANY, u"加载 混合文件", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_fold.AppendItem( self.m_menuItem_mix ) self.m_menuItem_texonly = wx.MenuItem( self.m_menu_fold, wx.ID_ANY, u"加载 Texture2D", u"选择贴图的文件夹", wx.ITEM_NORMAL ) self.m_menu_fold.AppendItem( self.m_menuItem_texonly ) self.m_menuItem_meshonly = wx.MenuItem( self.m_menu_fold, wx.ID_ANY, u"加载 Mesh ", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_fold.AppendItem( self.m_menuItem_meshonly ) self.menu_file.AppendSubMenu( self.m_menu_fold, u"加载文件夹" ) self.menu_file.AppendSeparator() self.m_menuItem_exit = wx.MenuItem( self.menu_file, wx.ID_ANY, u"退出", wx.EmptyString, wx.ITEM_NORMAL ) self.menu_file.AppendItem( self.m_menuItem_exit ) self.m_menubar2.Append( self.menu_file, u"文件" ) self.m_menu_export = wx.Menu() self.m_menuItem_all = wx.MenuItem( self.m_menu_export, wx.ID_ANY, u"导出全部", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_export.AppendItem( self.m_menuItem_all ) self.m_menuItem_all.Enable( False ) self.m_menuItem_choice = wx.MenuItem( self.m_menu_export, wx.ID_ANY, u"导出选择的文件", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_export.AppendItem( self.m_menuItem_choice ) self.m_menuItem_choice.Enable( False ) self.m_menuItem_copy_only = wx.MenuItem( self.m_menu_export, wx.ID_ANY, u"把不符合条件的文件直接导出", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_export.AppendItem( self.m_menuItem_copy_only ) self.m_menuItem_copy_only.Enable( False ) self.m_menubar2.Append( self.m_menu_export, u"导出" ) self.m_menu_tool = wx.Menu() self.m_menuItem_parkage = wx.MenuItem( self.m_menu_tool, wx.ID_ANY, u"打包导出文件", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_tool.AppendItem( self.m_menuItem_parkage ) self.m_menuItem_parkage.Enable( False ) self.m_menuItem_add = wx.MenuItem( self.m_menu_tool, wx.ID_ANY, u"添加新的舰娘名", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_tool.AppendItem( self.m_menuItem_add ) self.m_menuItem_add.Enable( False ) self.m_menuItem_set_list = wx.MenuItem( self.m_menu_tool, wx.ID_ANY, u"更改舰娘名", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_tool.AppendItem( self.m_menuItem_set_list ) self.m_menuItem_new_file = wx.MenuItem( self.m_menu_tool, wx.ID_ANY, u"比较新增", wx.EmptyString, wx.ITEM_NORMAL ) self.m_menu_tool.AppendItem( self.m_menuItem_new_file ) self.m_menubar2.Append( self.m_menu_tool, u"工具" ) self.SetMenuBar( self.m_menubar2 ) gSizer_main = wx.GridSizer( 0, 2, 0, 0 ) bSizer2 = wx.BoxSizer( wx.VERTICAL ) sbSizer_load_tex = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"Texture2D" ), wx.VERTICAL ) gSizer_tex = wx.GridSizer( 0, 2, 0, 0 ) self.m_gauge_tex_load = wx.Gauge( sbSizer_load_tex.GetStaticBox(), wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) self.m_gauge_tex_load.SetValue( 0 ) gSizer_tex.Add( self.m_gauge_tex_load, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_staticText_load_tex = wx.StaticText( sbSizer_load_tex.GetStaticBox(), wx.ID_ANY, u"无任务", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText_load_tex.Wrap( -1 ) gSizer_tex.Add( self.m_staticText_load_tex, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) sbSizer_load_tex.Add( gSizer_tex, 0, 0, 5 ) bSizer2.Add( sbSizer_load_tex, 0, wx.EXPAND, 5 ) sbSizer_load_mesh = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"Mesh" ), wx.VERTICAL ) gSizer_mesh = wx.GridSizer( 0, 2, 0, 0 ) self.m_gauge_mesh_load = wx.Gauge( sbSizer_load_mesh.GetStaticBox(), wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) self.m_gauge_mesh_load.SetValue( 0 ) gSizer_mesh.Add( self.m_gauge_mesh_load, 0, wx.ALL|wx.ALIGN_CENTER_VERTICAL, 5 ) self.m_staticText_mesh_load = wx.StaticText( sbSizer_load_mesh.GetStaticBox(), wx.ID_ANY, u"无任务", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText_mesh_load.Wrap( -1 ) gSizer_mesh.Add( self.m_staticText_mesh_load, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) sbSizer_load_mesh.Add( gSizer_mesh, 0, 0, 5 ) bSizer2.Add( sbSizer_load_mesh, 0, wx.EXPAND, 5 ) self.m_listbook2 = wx.Listbook( self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.LB_DEFAULT ) self.m_panel2 = wx.Panel( self.m_listbook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer7 = wx.BoxSizer( wx.VERTICAL ) self.m_searchCtrl_tex = wx.SearchCtrl( self.m_panel2, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_searchCtrl_tex.ShowSearchButton( True ) self.m_searchCtrl_tex.ShowCancelButton( True ) bSizer7.Add( self.m_searchCtrl_tex, 0, wx.ALL|wx.EXPAND, 5 ) m_listBox_texChoices = [] self.m_listBox_tex = wx.ListBox( self.m_panel2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_listBox_texChoices, 0 ) bSizer7.Add( self.m_listBox_tex, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel2.SetSizer( bSizer7 ) self.m_panel2.Layout() bSizer7.Fit( self.m_panel2 ) self.m_listbook2.AddPage( self.m_panel2, u"Texture\n", True ) self.m_panel1 = wx.Panel( self.m_listbook2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer71 = wx.BoxSizer( wx.VERTICAL ) self.m_searchCtrl_mesh = wx.SearchCtrl( self.m_panel1, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_searchCtrl_mesh.ShowSearchButton( True ) self.m_searchCtrl_mesh.ShowCancelButton( True ) bSizer71.Add( self.m_searchCtrl_mesh, 0, wx.ALL|wx.EXPAND, 5 ) m_listBox_meshChoices = [] self.m_listBox_mesh = wx.ListBox( self.m_panel1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_listBox_meshChoices, 0 ) bSizer71.Add( self.m_listBox_mesh, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel1.SetSizer( bSizer71 ) self.m_panel1.Layout() bSizer71.Fit( self.m_panel1 ) self.m_listbook2.AddPage( self.m_panel1, u"Mesh", False ) bSizer2.Add( self.m_listbook2, 1, wx.EXPAND |wx.ALL, 5 ) gSizer_main.Add( bSizer2, 1, wx.EXPAND, 5 ) sbSizer3 = wx.StaticBoxSizer( wx.StaticBox( self, wx.ID_ANY, u"information" ), wx.VERTICAL ) self.m_notebook1 = wx.Notebook( sbSizer3.GetStaticBox(), wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.NB_FIXEDWIDTH ) self.m_panel3 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer6 = wx.BoxSizer( wx.VERTICAL ) gSizer5 = wx.GridSizer( 0, 2, 0, 0 ) self.m_searchCtrl_pass = wx.SearchCtrl( self.m_panel3, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_searchCtrl_pass.ShowSearchButton( True ) self.m_searchCtrl_pass.ShowCancelButton( False ) gSizer5.Add( self.m_searchCtrl_pass, 0, wx.ALL|wx.EXPAND, 5 ) m_choice_passChoices = [ u"全部", u"航母", u"战列舰", u"驱逐", u"巡洋", u"潜艇", u"其他" ] self.m_choice_pass = wx.Choice( self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choice_passChoices, 0 ) self.m_choice_pass.SetSelection( 0 ) gSizer5.Add( self.m_choice_pass, 0, wx.ALL|wx.ALIGN_RIGHT, 5 ) bSizer6.Add( gSizer5, 0, wx.EXPAND, 5 ) m_listBox_infoChoices = [] self.m_listBox_info = wx.ListBox( self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_listBox_infoChoices, 0 ) bSizer6.Add( self.m_listBox_info, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel3.SetSizer( bSizer6 ) self.m_panel3.Layout() bSizer6.Fit( self.m_panel3 ) self.m_notebook1.AddPage( self.m_panel3, u"跳过文件信息", True ) self.m_panel4 = wx.Panel( self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL ) bSizer72 = wx.BoxSizer( wx.VERTICAL ) gSizer51 = wx.GridSizer( 0, 2, 0, 0 ) self.m_searchCtrl_unable = wx.SearchCtrl( self.m_panel4, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_searchCtrl_unable.ShowSearchButton( True ) self.m_searchCtrl_unable.ShowCancelButton( False ) gSizer51.Add( self.m_searchCtrl_unable, 0, wx.ALL|wx.EXPAND, 5 ) m_choice_unableChoices = [ u"全部", u"航母", u"战列舰", u"驱逐", u"巡洋", u"潜艇", u"其他" ] self.m_choice_unable = wx.Choice( self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_choice_unableChoices, 0 ) self.m_choice_unable.SetSelection( 0 ) gSizer51.Add( self.m_choice_unable, 0, wx.ALL|wx.ALIGN_RIGHT, 5 ) bSizer72.Add( gSizer51, 0, wx.EXPAND, 5 ) m_listBox_unableChoices = [] self.m_listBox_unable = wx.ListBox( self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, m_listBox_unableChoices, 0 ) bSizer72.Add( self.m_listBox_unable, 1, wx.ALL|wx.EXPAND, 5 ) self.m_panel4.SetSizer( bSizer72 ) self.m_panel4.Layout() bSizer72.Fit( self.m_panel4 ) self.m_notebook1.AddPage( self.m_panel4, u"不符合", False ) sbSizer3.Add( self.m_notebook1, 1, wx.EXPAND |wx.ALL, 5 ) self.m_staticText_now = wx.StaticText( sbSizer3.GetStaticBox(), wx.ID_ANY, u"当前:None", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText_now.Wrap( -1 ) sbSizer3.Add( self.m_staticText_now, 0, wx.ALL, 5 ) self.m_gauge_now = wx.Gauge( sbSizer3.GetStaticBox(), wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) self.m_gauge_now.SetValue( 0 ) sbSizer3.Add( self.m_gauge_now, 0, wx.ALL|wx.EXPAND, 5 ) self.m_staticText_all = wx.StaticText( sbSizer3.GetStaticBox(), wx.ID_ANY, u"总进度:0%", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText_all.Wrap( -1 ) sbSizer3.Add( self.m_staticText_all, 0, wx.ALL, 5 ) self.m_gauge_all = wx.Gauge( sbSizer3.GetStaticBox(), wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) self.m_gauge_all.SetValue( 0 ) sbSizer3.Add( self.m_gauge_all, 0, wx.ALL|wx.EXPAND, 5 ) self.m_checkBox_pass_finished = wx.CheckBox( sbSizer3.GetStaticBox(), wx.ID_ANY, u"跳过已还原的", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.m_checkBox_pass_finished.SetValue(True) sbSizer3.Add( self.m_checkBox_pass_finished, 0, wx.ALL|wx.ALIGN_RIGHT, 5 ) self.m_checkBox_autoopen = wx.CheckBox( sbSizer3.GetStaticBox(), wx.ID_ANY, u"完成后打开相应文件\\文件夹", wx.DefaultPosition, wx.DefaultSize, wx.ALIGN_RIGHT ) self.m_checkBox_autoopen.SetValue(True) sbSizer3.Add( self.m_checkBox_autoopen, 0, wx.ALL|wx.ALIGN_RIGHT, 5 ) gSizer_main.Add( sbSizer3, 1, wx.EXPAND, 5 ) self.SetSizer( gSizer_main ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.Bind( wx.EVT_CLOSE, self.close_press ) self.Bind( wx.EVT_MENU, self.load_tex, id = self.m_menuItem1.GetId() ) self.Bind( wx.EVT_MENU, self.load_Mesh, id = self.m_menuItem2.GetId() ) self.Bind( wx.EVT_MENU, self.load_tex_and_mesh, id = self.m_menuItem_mix.GetId() ) self.Bind( wx.EVT_MENU, self.load_tex_fold, id = self.m_menuItem_texonly.GetId() ) self.Bind( wx.EVT_MENU, self.load_mesh_fold, id = self.m_menuItem_meshonly.GetId() ) self.Bind( wx.EVT_MENU, self.exit_press, id = self.m_menuItem_exit.GetId() ) self.Bind( wx.EVT_MENU, self.export_all, id = self.m_menuItem_all.GetId() ) self.Bind( wx.EVT_MENU, self.export_choice, id = self.m_menuItem_choice.GetId() ) self.Bind( wx.EVT_MENU, self.copy_file, id = self.m_menuItem_copy_only.GetId() ) self.Bind( wx.EVT_MENU, self.zip_pack, id = self.m_menuItem_parkage.GetId() ) self.Bind( wx.EVT_MENU, self.add_new, id = self.m_menuItem_add.GetId() ) self.Bind( wx.EVT_MENU, self.change_name, id = self.m_menuItem_set_list.GetId() ) self.Bind( wx.EVT_MENU, self.compare, id = self.m_menuItem_new_file.GetId() ) self.m_searchCtrl_tex.Bind( wx.EVT_SEARCHCTRL_SEARCH_BTN, self.search_tex ) self.m_listBox_tex.Bind( wx.EVT_LISTBOX_DCLICK, self.tex_choice ) self.m_searchCtrl_mesh.Bind( wx.EVT_SEARCHCTRL_SEARCH_BTN, self.search_mesh ) self.m_listBox_mesh.Bind( wx.EVT_LISTBOX_DCLICK, self.mesh_choice ) self.m_searchCtrl_pass.Bind( wx.EVT_SEARCHCTRL_SEARCH_BTN, self.search_pass ) self.m_listBox_info.Bind( wx.EVT_LISTBOX_DCLICK, self.open_pass ) self.m_searchCtrl_unable.Bind( wx.EVT_SEARCHCTRL_SEARCH_BTN, self.search_unable ) self.m_listBox_unable.Bind( wx.EVT_LISTBOX_DCLICK, self.open_file ) self.m_checkBox_pass_finished.Bind( wx.EVT_CHECKBOX, self.pass_finished ) self.m_checkBox_autoopen.Bind( wx.EVT_CHECKBOX, self.auto_open )