【问题标题】:Gtk::Window icon set with set_icon_name doesn't work on wayland使用 set_icon_name 设置的 Gtk::Window 图标在 Wayland 上不起作用
【发布时间】:2020-05-14 11:09:44
【问题描述】:

我正在尝试通过测试这个示例程序来解决a synfig issue

#include <gtkmm.h>
#include <iostream>

class HelloWindow : public Gtk::Window {
        public:
                HelloWindow();
                ~HelloWindow();
};

HelloWindow::HelloWindow()
{
        set_icon_name("org.synfig.SynfigStudio"); // <- name copied from synfig build

        property_title() = "Hello Window";
        property_default_width() = 320;
        property_default_height() = 240;

        present();
}

HelloWindow::~HelloWindow()
{
}

int main()
{
        Glib::RefPtr<Gtk::Application> app = Gtk::Application::create("org.gtkmm.Hello");

        HelloWindow hello;

        return app->run(hello);
}

我将 synfig hicolor 图标复制到我的 ~/.icons/ 目录中。

在运行示例程序时,图标会显示在 X11 GNOME 会话中

而在 Wayland 上,我得到了可执行图标作为替换

另外,尝试使用预装的系统图标,例如"org.gnome.Calculator"

窗口图标在 X11 上有效,但在 Wayland 上无效

【问题讨论】:

    标签: c++ gtkmm3


    【解决方案1】:

    答案不是我的。 GTK irc 的一位用户给出了这个,我只是引用了对话

    这里是聊天记录:Riot | GTK

    以及引用的答案

    通常你有一个桌面文件

    从那里使用图标(和名称)

    所以如果 synfig studio 没有,那就加一个

    【讨论】:

    • 这对 Linux 来说确实是正确的。但是窗户呢?我将我的 gtk 应用程序交叉编译到 Windows。但是在Windows下如何获取图标呢?
    • 对于 Windows,我记得使用 3rd 方工具将 *.ico 文件打包到我的 gtk 应用程序中。作品。遗憾的是我不记得那个工具的名字了:(
    • 我找到了该工具的名称:rcedit。并且只是为了快速查看如何将 png 图标文件导出到 *.ico 文件Changing application icon for Windows
    • 这是给戈多的。我认为不是当你使用 c++ 时。无论如何,是的,您需要一个 ico 文件,但您还需要一个 windows 资源文件。我刚刚发现这样的文件需要用windres编译器(rc文件编译器)编译。
    猜你喜欢
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多