⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 core.py

📁 用python写的ide开发环境,巨强大,不过需要wxpython的支持
💻 PY
📖 第 1 页 / 共 2 页
字号:
# Name:         core.py# Purpose:      Core components# Author:       Roman Rolinsky <rolinsky@femagsoft.com># Created:      31.05.2007# RCS-ID:       $Id: core.py 49455 2007-10-26 10:58:11Z ROL $from component import *import imagesimport _bitmaps as bitmapsTRACE('*** creating core components')# Set panel imagesManager.panelImages['Windows'] = images.getToolPanel_WindowsImage()Manager.panelImages['Menus'] = images.getToolPanel_MenusImage()Manager.panelImages['Sizers'] = images.getToolPanel_SizersImage()Manager.panelImages['Panels'] = images.getToolPanel_PanelsImage()Manager.panelImages['Gizmos'] = images.getToolPanel_GizmosImage()### wxFrameclass Frame(Container):    def getChildObject(self, node, obj, index):        # Do not count toolbar and menubar        objects = filter(is_object, node.childNodes)        for i,o in enumerate(objects):            if o.getAttribute('class') == 'wxMenuBar':                if i == index:  return obj.GetMenuBar()                elif i < index: index -= 1            elif o.getAttribute('class') == 'wxToolBar':                if i == index:  return obj.GetToolBar()                elif i < index: index -= 1        return Container.getChildObject(self, node, obj, index)c = Frame('wxFrame', ['frame','window','top_level'],               ['pos', 'size', 'title', 'centered'],              image=images.getTreeFrameImage())c.isTopLevel = Truec.addStyles('wxDEFAULT_FRAME_STYLE', 'wxDEFAULT_DIALOG_STYLE', 'wxCAPTION',             'wxSTAY_ON_TOP', 'wxSYSTEM_MENU', 'wxTHICK_FRAME',            'wxRESIZE_BORDER', 'wxRESIZE_BOX', 'wxCLOSE_BOX',            'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',            'wxFRAME_NO_TASKBAR', 'wxFRAME_SHAPED', 'wxFRAME_TOOL_WINDOW',            'wxFRAME_FLOAT_ON_PARENT',            'wxNO_3D', 'wxTAB_TRAVERSAL')c.addExStyles('wxFRAME_EX_CONTEXTHELP', 'wxWS_EX_VALIDATE_RECURSIVELY', 'wxFRAME_EX_METAL')c.addEvents('EVT_SIZE', 'EVT_CLOSE', 'EVT_MENU_HIGHLIGHT', 'EVT_ICONIZE', 'EVT_MAXIMIZE',            'EVT_ACTIVATE', 'EVT_UPDATE_UI')Manager.register(c)Manager.setMenu(c, 'TOP_LEVEL', 'frame', 'wxFrame', 10)Manager.setTool(c, 'Windows', bitmaps.getwxFrameBitmap(), (0,0))### wxDialogc = Container('wxDialog', ['frame','window','top_level'],               ['pos', 'size', 'title', 'centered', 'icon'],              image=images.getTreeFrameImage())c.isTopLevel = Truec.setSpecial('icon', BitmapAttribute)c.addStyles('wxDEFAULT_DIALOG_STYLE', 'wxDEFAULT_FRAME_STYLE', 'wxCAPTION',             'wxSTAY_ON_TOP', 'wxSYSTEM_MENU', 'wxTHICK_FRAME',            'wxRESIZE_BORDER', 'wxRESIZE_BOX', 'wxCLOSE_BOX',            'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',            'wxDIALOG_MODAL', 'wxDIALOG_MODELESS', 'wxDIALOG_NO_PARENT',            'wxNO_3D', 'wxTAB_TRAVERSAL')c.addExStyles('wxDIALOG_EX_CONTEXTHELP', 'wxWS_EX_VALIDATE_RECURSIVELY', 'wxDIALOG_EX_METAL')c.addEvents('EVT_INIT_DIALOG', 'EVT_SIZE', 'EVT_CLOSE',             'EVT_ICONIZE', 'EVT_MAXIMIZE', 'EVT_ACTIVATE', 'EVT_UPDATE_UI')Manager.register(c)Manager.setMenu(c, 'TOP_LEVEL', 'dialog', 'wxDialog', 20)Manager.setTool(c, 'Windows', bitmaps.getwxDialogBitmap(), (0,1))### wxPanelc = Container('wxPanel', ['window', 'top_level', 'control'],               ['pos', 'size'],              image=images.getTreePanelImage())c.addStyles('wxNO_3D', 'wxTAB_TRAVERSAL')Manager.register(c)Manager.setMenu(c, 'TOP_LEVEL', 'panel', 'wxPanel', 30)Manager.setMenu(c, 'container', 'panel', 'wxPanel', 10)Manager.setTool(c, 'Windows', bitmaps.getwxPanelBitmap(), (0,2))### wxWizardclass Wizard(Container):    genericStyles = genericExStyles = []    def makeTestWin(self, res, name):        wiz = wx.wizard.PreWizard()        res.LoadOnObject(wiz, view.frame, STD_NAME, self.klass)        # Find and select first page        firstPage = None        for w in wiz.GetChildren():            if isinstance(w, wx.wizard.WizardPage):                firstPage = w                break        if firstPage:            wiz.RunWizard(w)        else:            wx.LogMessage('Wizard is empty')        wiz.Destroy()        return None, Nonec = Wizard('wxWizard', ['wizard', 'top_level'],            ['pos', 'title', 'bitmap'],           image=images.getTreePanelImage())c.addExStyles('wxWIZARD_EX_HELPBUTTON')c.setSpecial('bitmap', BitmapAttribute)Manager.register(c)Manager.setMenu(c, 'TOP_LEVEL', 'wizard', 'wxWizard', 40)Manager.setTool(c, 'Windows', bitmaps.getwxWizardBitmap(), (1,0), (1,2))### wxWizardPagec = Container('wxWizardPage', ['wizard_page', 'window'], ['bitmap'],              image=images.getTreePanelImage())c.setSpecial('bitmap', BitmapAttribute)Manager.register(c)Manager.setMenu(c, 'container', 'wizard page', 'wxWizardPage')### wxWizardPageSimplec = Container('wxWizardPageSimple', ['wizard_page', 'window'], ['bitmap'],              image=images.getTreePanelImage())c.setSpecial('bitmap', BitmapAttribute)Manager.register(c)Manager.setMenu(c, 'container', 'simple wizard page', 'wxWizardPageSimple')### wxPropertySheetDialogclass ParamButtons(params.ParamBinaryOr):    '''Button flags.'''    values = ['wxOK', 'wxCANCEL', 'wxYES', 'wxNO', 'wxHELP', 'wxNO_DEFAULT']class ParamSheetStyle(params.ParamBinaryOr):    '''Button flags.'''    values = ['wxPROPSHEET_DEFAULT', 'wxPROPSHEET_NOTEBOOK',            'wxPROPSHEET_CHOICEBOOK', 'wxPROPSHEET_LISTBOOK', # Tool book needs an image list#            'wxPROPSHEET_TOOLBOOK', 'wxPROPSHEET_BUTTONTOOLBOOK',            'wxPROPSHEET_TREEBOOK', 'wxPROPSHEET_SHRINKTOFIT']c = SmartContainer('wxPropertySheetDialog', ['frame','book','window','top_level'],                    ['pos', 'size', 'title', 'centered', 'icon', 'sheetstyle', 'buttons'],                   params={'buttons': ParamButtons, 'sheetstyle': ParamSheetStyle},                   implicit_klass='propertysheetpage',                    implicit_page='PropertySheetPage',                    implicit_attributes=['label', 'selected', 'bitmap'],                   implicit_params={'label': params.ParamText, 'selected': params.ParamBool},                   image=images.getTreeDialogImage())c.isTopLevel = Truec.setSpecial('bitmap', BitmapAttribute)c.setSpecial('icon', BitmapAttribute)c.addStyles('wxDEFAULT_DIALOG_STYLE', 'wxCAPTION', 'wxFRAME_SHAPED',            'wxTAB_TRAVERSAL', 'wxSTAY_ON_TOP', 'wxSYSTEM_MENU',             'wxRESIZE_BORDER', 'wxCLOSE_BOX', 'wxMAXIMIZE_BOX', 'wxMINIMIZE_BOX',            'wxDIALOG_MODAL', 'wxDIALOG_MODELESS', 'wxDIALOG_NO_PARENT',            'wxNO_3D', 'wxTAB_TRAVERSAL')c.addExStyles('wxDIALOG_EX_CONTEXTHELP', 'wxWS_EX_VALIDATE_RECURSIVELY', 'wxDIALOG_EX_METAL')c.addEvents('EVT_INIT_DIALOG', 'EVT_SIZE', 'EVT_CLOSE',             'EVT_ICONIZE', 'EVT_MAXIMIZE', 'EVT_ACTIVATE', 'EVT_UPDATE_UI')Manager.register(c)Manager.setMenu(c, 'TOP_LEVEL', 'propery sheet dialog', 'wxPropertySheetDialog', 50)Manager.setTool(c, 'Windows', bitmaps.getwxPropertySheetDialogBitmap(), (1,1))### wxBoxSizerc = BoxSizer('wxBoxSizer', ['sizer'], ['orient'],              defaults={'orient': 'wxVERTICAL'},             images=[images.getTreeSizerVImage(), images.getTreeSizerHImage()])Manager.register(c)Manager.setMenu(c, 'sizer', 'box sizer', 'wxBoxSizer', 10)Manager.setTool(c, 'Sizers', pos=(0,0))### wxStaticBoxSizerc = BoxSizer('wxStaticBoxSizer', ['sizer'], ['label', 'orient'],              defaults={'orient': 'wxVERTICAL'},             images=[images.getTreeSizerVImage(), images.getTreeSizerHImage()])Manager.register(c)Manager.setMenu(c, 'sizer', 'static box sizer', 'wxStaticBoxSizer', 20)Manager.setTool(c, 'Sizers', pos=(0,2))### wxGridSizerc = Sizer('wxGridSizer', ['sizer'],          ['cols', 'rows', 'vgap', 'hgap'],           defaults={'cols': '2', 'rows': '2'},          image=images.getTreeSizerGridImage())Manager.register(c)Manager.setMenu(c, 'sizer', 'grid sizer', 'wxGridSizer', 30)Manager.setTool(c, 'Sizers', pos=(0,1))### wxFlexGridSizerc = Sizer('wxFlexGridSizer', ['sizer'],          ['cols', 'rows', 'vgap', 'hgap', 'growablecols', 'growablerows'],          defaults={'cols': '2', 'rows': '2'},          image=images.getTreeSizerFlexGridImage())c.setSpecial('growablecols', MultiAttribute)c.setParamClass('growablecols', params.ParamIntList)c.setSpecial('growablerows', MultiAttribute)c.setParamClass('growablerows', params.ParamIntList)Manager.register(c)Manager.setMenu(c, 'sizer', 'flex grid sizer', 'wxFlexGridSizer', 40)Manager.setTool(c, 'Sizers', pos=(1,0))### wxGridBagSizerc = Sizer('wxGridBagSizer', ['sizer'],          ['vgap', 'hgap', 'growablecols', 'growablerows'],          image=images.getTreeSizerGridBagImage(),          implicit_attributes=['option', 'flag', 'border', 'minsize', 'ratio', 'cellpos', 'cellspan'])c.setSpecial('growablecols', MultiAttribute)c.setParamClass('growablecols', params.ParamIntList)c.setSpecial('growablerows', MultiAttribute)c.setParamClass('growablerows', params.ParamIntList)c.setImplicitParamClass('cellpos', params.ParamPosSize)c.setImplicitParamClass('cellspan', params.ParamPosSize)Manager.register(c)Manager.setMenu(c, 'sizer', 'grid bag sizer', 'wxGridBagSizer', 50)Manager.setTool(c, 'Sizers', pos=(1,1))### wxStdDialogButtonSizerclass StdDialogButtonSizer(Sizer):    def getChildObject(self, node, obj, index):        # This sizer orders buttons by fixed ordering, so we must        # get the ID to find them        try:            n = filter(is_object, node.childNodes)[index]            n = filter(is_object, n.childNodes)[0]            id = n.getAttribute('name')        except IndexError:            return None        items = filter(wx.SizerItem.IsWindow, obj.GetChildren())        for item in items:            w = item.GetWindow()            if w.GetName() == id: return w        return Nonec = StdDialogButtonSizer('wxStdDialogButtonSizer', ['btnsizer'], [],          implicit_klass='button',           implicit_attributes=[])Manager.register(c)Manager.setMenu(c, 'sizer', 'dialog button sizer', 'wxStdDialogButtonSizer', 60)#Manager.setTool(c, 'Sizers', pos=(0,2))### spacerc = SimpleComponent('spacer', ['spacer'], ['size', 'option', 'flag', 'border'])c.hasName = FalseManager.register(c)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -