gtkmm 程序的外观不佳

Posted

技术标签:

【中文标题】gtkmm 程序的外观不佳【英文标题】:Poor look of a gtkmm program 【发布时间】:2012-03-23 21:53:33 【问题描述】:

我正在和朋友一起使用 gtkmm 用 C++ 编写一个简单的照片查看器。一切都很顺利,除了我们的应用程序看起来很差,并且与我们 Linux 桌面上的任何其他 GTK+ 应用程序完全不同。如果有人能给我们一些关于我们做错了什么的建议,我们将非常感激。

负责创建窗口的代码在这里(其余代码在存储库中): https://github.com/jjkrol/ZPR/blob/master/src/gui.cpp

外观截图:

任何帮助将不胜感激,在此先感谢!

【问题讨论】:

关于 SCons 性能,SConstruct 看起来不错。尝试通过复制和粘贴编译命令来“手动”编译需要很长时间的文件,以隔离它是编译器还是 SCons。 【参考方案1】:

GTK 3.0 的主题与 GTK 2.0 不同。可能您的任何其他 GTK+ 应用程序仍然依赖于 2.0,因此您没有为 3.0 设置主题。了解如何将其设置为例如Adwaita 在您的桌面环境中。

顺便说一句:看看Glib::RefPtr<>

【讨论】:

非常感谢,成功了!为什么你建议看看Glib::RefPtr&lt;&gt;?我用错了吗? 我相信他指的是您的代码中“新”的优势。在 gtkmm 代码中,您应该直接声明该字段 (Gtk::Box mybox),这样就没有暴露的指针,或者如果这不可能,请使用 Glib::RefPtr (Glib::RefPtr<:box> mybox) 以便新的指针更难泄漏。在任何一种情况下,对象都会被自动删除。 Gtk::manage 有时也很有用,你也应该注意它。 不,不要将 RefPtr 与小部件一起使用。它不是为此而设计的,会导致问题。使用 Gtk::manage()。 我正在使用 KDE(等离子) - 不知道如何在其上设置“gtkmm3 主题”:/.

以上是关于gtkmm 程序的外观不佳的主要内容,如果未能解决你的问题,请参考以下文章

swift设计模式学习 - 外观模式

外观模式

设计模式--12外观模式

UITextfield 键盘外观的扩展

设计模式外观模式Facade(结构型)

11.设计模式_外观模式