正在编写 generic/native 外观 GUI linux 应用程序
Writing generic/native look GUI linux application
有没有一种方法可以创建 Linux 应用程序,使其在所有 DE 上具有 native/generic 外观和感觉?例如,如果我用 GTK 编写应用程序,它在 Gnome 上看起来 fine/native,但在 KDE (QT) 上它看起来很丑。我想知道是否有一个独立于 DE 的通用框架来创建 UI(最好具有 UI 的声明性语法),这将在所有 DE 上创建原生外观?
我不这么认为,因为我不确定任何 native look 是否 well 定义。然而,像 GTK(由 Gnome 和 XFCE 使用)和 Qt(由 KDE 使用)这样的工具包正在以某种方式标准化一些 "common"(或至少是通常的)外观......(事实上,Gnome 和 KDE 都定义了一些视觉和行为指南,不兼容)。
您是否考虑过制作 Web 应用程序 - 也许使用 FastCGI,或者甚至像 libonion or Wt 这样的一些 HTTP 服务器库?它将使用通常的浏览器 "look and feel" ...
请注意,感谢 X11 and conventions like EWMH, applications written in GTK can inter-operate with applications written in Qt (and vice-versa), even if they are looking slightly different... And as commented by andlabs,您可以为它们制作适当的主题,使它们看起来更加相似。
此外,一些 Unix 和 Linux 应用程序(甚至是最近的 git) are mostly command line 应用程序(完成大部分工作),带有一些较小的 GUI 包装器,可能与 CLI 应用程序通信(例如通过管道)。也许您可以类似地组织您的应用程序:让一些 命令行可执行文件 完成大部分工作并添加一些 small
上面的 GUI 包装器(然后您可以在 GTK 中为 Gnome 编写一个包装器,在 Qt 中为 KDE 编写另一个包装器)。您甚至可以通过设计和开发实现您的功能的 free software 库 来走得更远,将大部分 GUI 工作留给其他开发人员(并接受对您的免费软件库的改进)?
有没有一种方法可以创建 Linux 应用程序,使其在所有 DE 上具有 native/generic 外观和感觉?例如,如果我用 GTK 编写应用程序,它在 Gnome 上看起来 fine/native,但在 KDE (QT) 上它看起来很丑。我想知道是否有一个独立于 DE 的通用框架来创建 UI(最好具有 UI 的声明性语法),这将在所有 DE 上创建原生外观?
我不这么认为,因为我不确定任何 native look 是否 well 定义。然而,像 GTK(由 Gnome 和 XFCE 使用)和 Qt(由 KDE 使用)这样的工具包正在以某种方式标准化一些 "common"(或至少是通常的)外观......(事实上,Gnome 和 KDE 都定义了一些视觉和行为指南,不兼容)。
您是否考虑过制作 Web 应用程序 - 也许使用 FastCGI,或者甚至像 libonion or Wt 这样的一些 HTTP 服务器库?它将使用通常的浏览器 "look and feel" ...
请注意,感谢 X11 and conventions like EWMH, applications written in GTK can inter-operate with applications written in Qt (and vice-versa), even if they are looking slightly different... And as commented by andlabs,您可以为它们制作适当的主题,使它们看起来更加相似。
此外,一些 Unix 和 Linux 应用程序(甚至是最近的 git) are mostly command line 应用程序(完成大部分工作),带有一些较小的 GUI 包装器,可能与 CLI 应用程序通信(例如通过管道)。也许您可以类似地组织您的应用程序:让一些 命令行可执行文件 完成大部分工作并添加一些 small 上面的 GUI 包装器(然后您可以在 GTK 中为 Gnome 编写一个包装器,在 Qt 中为 KDE 编写另一个包装器)。您甚至可以通过设计和开发实现您的功能的 free software 库 来走得更远,将大部分 GUI 工作留给其他开发人员(并接受对您的免费软件库的改进)?