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

📄 codegen.py

📁 用python写的ide开发环境,巨强大,不过需要wxpython的支持
💻 PY
字号:
# codegen.py: code generator functions for wxDialog objects# $Id: codegen.py,v 1.15 2007/03/27 07:02:00 agriggio Exp $## Copyright (c) 2002-2007 Alberto Griggio <agriggio@users.sourceforge.net># License: MIT (see license.txt)# THIS PROGRAM COMES WITH NO WARRANTYimport commonclass PythonCodeGenerator:    def get_code(self, obj):        return [], [], []    def get_properties_code(self, dialog):        prop = dialog.properties        pygen = common.code_writers['python']        cn = pygen.cn        out = []        title = prop.get('title')        if title: out.append('self.SetTitle(%s)\n' % pygen.quote_str(title))        icon = prop.get('icon')        if icon:             if icon.startswith('var:'):                if not dialog.preview:                    out.append('_icon = ' + cn('wxEmptyIcon') + '()\n')                    out.append(('_icon.CopyFromBitmap(' + cn('wxBitmap') +                                '(%s, ' + cn('wxBITMAP_TYPE_ANY') + '))\n') % \                               icon[4:].strip())                    out.append('self.SetIcon(_icon)\n')            elif icon.startswith('code:'):                if not dialog.preview:                    out.append('_icon = ' + cn('wxEmptyIcon') + '()\n')                    out.append(('_icon.CopyFromBitmap(%s)\n') % \                               icon[5:].strip())                    out.append('self.SetIcon(_icon)\n')            else:                if dialog.preview:                    import misc                    icon = misc.get_relative_path(icon, True)                out.append('_icon = ' + cn('wxEmptyIcon') + '()\n')                out.append(('_icon.CopyFromBitmap(' + cn('wxBitmap') +                            '(%s, ' + cn('wxBITMAP_TYPE_ANY') + '))\n') % \                           pygen.quote_str(icon, False, False))                out.append('self.SetIcon(_icon)\n')        out.extend(pygen.generate_common_properties(dialog))        return out    def get_layout_code(self, dialog):        ret = ['self.Layout()\n']        try:            if int(dialog.properties['centered']):                ret.append('self.Centre()\n')        except (KeyError, ValueError):            pass        return ret# end of class PythonCodeGeneratorclass CppCodeGenerator:    constructor = [('wxWindow*', 'parent'), ('int', 'id'),                   ('const wxString&', 'title'),                   ('const wxPoint&', 'pos', 'wxDefaultPosition'),                   ('const wxSize&', 'size', 'wxDefaultSize'),                   ('long', 'style', 'wxDEFAULT_DIALOG_STYLE')]    def get_code(self, obj):        return [], [], [], []        def get_properties_code(self, dialog):        """\        generates the code for the various wxDialog specific properties.        Returns a list of strings containing the generated code        """        prop = dialog.properties        cppgen = common.code_writers['C++']        out = []        title = prop.get('title')        if title: out.append('SetTitle(%s);\n' % cppgen.quote_str(title))        icon = prop.get('icon')        if icon:            out.append('wxIcon _icon;\n')            if icon.startswith('var:'):                out.append('_icon.CopyFromBitmap(wxBitmap(' +                           '%s, wxBITMAP_TYPE_ANY));\n' % \                           icon[4:].strip())            elif icon.startswith('code:'):                out.append('_icon.CopyFromBitmap(%s);\n' % \                           icon[5:].strip())            else:                out.append('_icon.CopyFromBitmap(wxBitmap(%s, '                           'wxBITMAP_TYPE_ANY));\n' % \                           cppgen.quote_str(icon, False, False))            out.append('SetIcon(_icon);\n')        out.extend(cppgen.generate_common_properties(dialog))        return out    def get_layout_code(self, dialog):        ret = ['Layout();\n']        try:            if int(dialog.properties['centered']):                ret.append('Centre();\n')        except (KeyError, ValueError):            pass        return ret# end of class CppCodeGeneratordef xrc_code_generator(obj):    xrcgen = common.code_writers['XRC']    class DialogXrcObject(xrcgen.DefaultXrcObject):        def write_property(self, name, val, outfile, ntabs):            if name != 'sizehints':                xrcgen.DefaultXrcObject.write_property(                    self, name, val, outfile, ntabs)    # end of class DialogXrcObject        return DialogXrcObject(obj)def initialize():    cn = common.class_names    cn['EditDialog'] = 'wxDialog'    common.toplevels['EditDialog'] = 1        pygen = common.code_writers.get('python')    if pygen:        pygen.add_widget_handler('wxDialog', PythonCodeGenerator())    cppgen = common.code_writers.get('C++')    if cppgen:        cppgen.add_widget_handler('wxDialog', CppCodeGenerator())    xrcgen = common.code_writers.get('XRC')    if xrcgen:        xrcgen.add_widget_handler('wxDialog', xrc_code_generator)

⌨️ 快捷键说明

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