Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ GTK 3 C和x2B+;按钮中带有标签的图标_C++_Gtk3 - Fatal编程技术网

C++ GTK 3 C和x2B+;按钮中带有标签的图标

C++ GTK 3 C和x2B+;按钮中带有标签的图标,c++,gtk3,C++,Gtk3,我试图让图标与按钮中的标签一起出现,但似乎有一个覆盖正在进行,并且按钮只接受一个元素标签或图标 以下是我迄今为止所做的工作: #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::

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

以下是我迄今为止所做的工作:

#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);
}
#包括
int main(int argc,字符**argv)
{
auto-app=Gtk::Application::create(argc,argv);
Gtk::Window*win=新的Gtk::Window;
Gtk::Image*图标=新的Gtk::Image;
图标->设置(“src/ui/icons/about.png”);
Gtk::Button*btn=新的Gtk::Button;
btn->设置标签(“你好世界”);
btn->设置图像(*图标);
赢->添加(*btn);
win->show_all();
返回应用程序->运行(*赢);
}
如何使图标和标签都显示在按钮中?
谢谢

有一个全球范围的Gtk设置,发行版或用户可以使用它来设计应用程序的外观。当该值为false时,Gtk会在也有标签的按钮中隐藏图像

无论此系统设置如何,您都可以通过调用

以下是更新后的示例:

#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);
}
#包括
int main(int argc,字符**argv)
{
auto-app=Gtk::Application::create(argc,argv);
Gtk::Window*win=新的Gtk::Window;
Gtk::Image*图标=新的Gtk::Image;
图标->设置(“src/ui/icons/about.png”);
Gtk::Button*btn=新的Gtk::Button;
btn->设置标签(“你好世界”);
btn->设置图像(*Gtk::管理(图标));
btn->设置始终显示图像(真);
赢->添加(*Gtk::管理(btn));
win->show_all();
返回应用程序->运行(*赢);
}

谢谢!这工作完美!我还找到了另一种方法
btn->add_pixlabel(“src/ui/icons/about.png”,“Login”,Gtk::ALIGN_START,Gtk::ALIGN_CENTER)