无法显示 Gtk::Window 中文件中的 PNG 图像

Unable to display PNG image from file in Gtk::Window

我在 Gtk::Window 中显示 PNG 文件时遇到一些问题。我尝试从文件创建一个 Gtk::Pixbuf,然后使用它创建一个 Gtk::Image。然后我尝试将 Gtk::Image 添加到 Gtk::Window 但我得到的只是一个空白屏幕。我做错了什么?

class CMainWindow : public Gtk::ApplicationWindow
{
public:
    CMainWindow();
    ~CMainWindow();
};

CMainWindow::CMainWindow()
{
    Glib::RefPtr<Gdk::Pixbuf> pic = Gdk::Pixbuf::create_from_file("image.png");
    Gtk::Image* img = Gtk::manage(new Gtk::Image(pic));
    add(*img);
}

CMainWIndow::~CMainWindow() {}

int main(int argc, char** argv)
{
    app = Gtk::Application::create(argc, argv,"org.gtkmm.examples.base");
    CMainWindow c;
    return app->run(c);
}

虽然 Gtk::Application::run() 将确保显示 CMainWindow,但它不会尝试显示其所有子项。在您的构造函数中,添加对 img->show();.

的调用

我记得看到 a blog post 报告说下一版本的 GTK+(因此也可能是下一版本的 gtkmm)将更改默认行为,以便默认显示小部件。但是现在,必须记得给他们看。