【问题标题】:GTK 3 C++ icon with label in a button按钮中带有标签的 GTK 3 C++ 图标
【发布时间】:2019-12-02 20:38:02
【问题描述】:

我试图让一个图标与按钮中的标签一起出现,但似乎有一个覆盖正在进行,并且该按钮只接受 一个元素 或者 label 或 图标

这是我到目前为止所做的:

#include <gtkmm.h>

int main(int argc, char** argv)
{
    auto app = Gtk::Application::create(argc, argv);

    Gtk::Window* win = new Gtk::Window;

    Gtk::Image* icon = new Gtk::Image;
    icon->set("src/ui/icons/about.png");


    Gtk::Button* btn = new Gtk::Button;

    btn->set_label("Hello world");
    btn->set_image(*icon);

    win->add(*btn);
    win->show_all();

    return app->run(*win);
}

如何让图标和标签同时显示在按钮中? 谢谢!

【问题讨论】:

    标签: c++ gtk3


    【解决方案1】:

    有一个全球范围的 Gtk 设置 gtk-button-images,发行版或用户可以使用它来设置应用程序外观的样式。当值为 false 时,Gtk 将图像隐藏在同样有标签的按钮中。

    无论此系统设置如何,您都可以通过调用gtk_button_set_always_show_image使您的按钮始终显示图像

    这是更新后的示例:

    #include <gtkmm.h>
    
    int main(int argc, char** argv)
    {
        auto app = Gtk::Application::create(argc, argv);
    
        Gtk::Window* win = new Gtk::Window;
    
        Gtk::Image* icon = new Gtk::Image;
        icon->set("src/ui/icons/about.png");
    
    
        Gtk::Button* btn = new Gtk::Button;
    
        btn->set_label("Hello world");
        btn->set_image(*Gtk::manage(icon));
        btn->set_always_show_image(true);
    
        win->add(*Gtk::manage(btn));
        win->show_all();
    
        return app->run(*win);
    }
    

    【讨论】:

    • 谢谢!这很完美!我还找到了另一种方式btn-&gt;add_pixlabel("src/ui/icons/about.png", "Login", Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-26
    相关资源
    最近更新 更多