【问题标题】:What gui library is used by sublime text editor?sublime 文本编辑器使用什么 gui 库?
【发布时间】:2011-10-29 11:08:56
【问题描述】:

我已经下载了sublimetext 的编辑器,我想知道其中使用了什么GUI 库。

编辑器可执行文件目录中的文件的文件名是:

bz2.pyd
Microsoft.VC90.CRT.manifest   
msvcp90.dll
msvcr90.dll                   
PackageSetup.py
PackageSetup.pyc              
pyexpat.pyd                   
python26.dll
python26.zip                  
select.pyd
sublimeplugin.py              
sublimeplugin.pyc
sublimetext.exe               
unicodedata.pyd
unins000.dat                  
unins000.exe
_ctypes.pyd                   
_elementtree.pyd
_hashlib.pyd                  
_socket.pyd
_ssl.pyd     

我可以从文件名中找到信息吗?

【问题讨论】:

    标签: python user-interface sublimetext


    【解决方案1】:

    谷歌搜索表明它使用的是 Sublime GUI,根据 Debian 源代码包判断它是用 C++ 编写的。

    再一次,在 Linux sublime_text 二进制文件上运行 strings 会显示以下共享库(相当于 Windows DLL),这可能会建议使用 gtk:

    /lib/ld-linux.so.2
    libgtk-x11-2.0.so.0
    libgdk-x11-2.0.so.0
    libatk-1.0.so.0
    libgio-2.0.so.0
    libpangoft2-1.0.so.0
    libpangocairo-1.0.so.0
    libgdk_pixbuf-2.0.so.0
    libcairo.so.2
    libpng12.so.0
    libpango-1.0.so.0
    libfreetype.so.6
    libfontconfig.so.1
    libgobject-2.0.so.0
    libgmodule-2.0.so.0
    libgthread-2.0.so.0
    librt.so.1
    libglib-2.0.so.0
    libpthread.so.0
    libdl.so.2
    libutil.so.1
    libm.so.6
    libX11.so.6
    libstdc++.so.6
    libgcc_s.so.1
    libc.so.6
    libgio-2.0.so
    libgio-2.0.so.0
    module.so
    

    this also 建议使用 gtk。

    【讨论】:

      【解决方案2】:

      它可能不是用 Python 编写的。你看到 Python 代码的原因是用户可以在 Python 中编写脚本/插件来扩展 Sublime Text。我怀疑它是用 GTK 作为 GUI 工具包用 C++ 编写的。

      【讨论】:

        【解决方案3】:

        Sublime Text 2 大部分是用 C++ 编写的,并使用自定义 UI 工具包。这是作者 Jon Skinner 的解释:http://news.ycombinator.com/item?id=2822114

        我一直想写一篇关于这方面的详细信息的博文,但作为 有很多事情,我通常最终改为编码。崇高文本 2 是 几乎完全是 C++(带有一些用于 Cocoa 的 Objective C 和 用于插件的 Python)。编码通常相当简单:代码 在一个平台上(目前主要是 Linux,但我换了 经常),然后确保它仍然在其他地方编译。升华 Text 2 本身使用自定义 UI 工具包。有很多应用程序 这可能没有意义,但对于 Sublime Text,我一直都知道很多 UI 控件是 无论工具包如何(例如,文本 控件和选项卡控件)。 UI 工具包位于十字架之上 平台抽象层,更多的是平台的联合 功能而不是最小公分母。

        【讨论】:

        • 该链接似乎不再存在(404 Not Found)
        • 来自 Sublime 2 的作者:“Sublime Text 2 本身使用了一个自定义 UI 工具包”,我们知道它是一个自定义 UI。而且,根据 Sublime 2 库和错误消息,我们可以收集到 “自定义 UI” 是基于 GTK(至少部分)。
        • 你们认为“自定义 UI” 是硬件加速 (OpenGL) 吗?
        • 一些帖子说他在 Windows 上使用 Direct2D。现在找不到链接。
        • 几周前我在 HackerNews 上读到(我认为是在 Sublime Merge 发布公告中),自定义 UI 工具包基于 Skia
        猜你喜欢
        • 1970-01-01
        • 2022-01-15
        • 1970-01-01
        • 2016-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多