无法显示 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)将更改默认行为,以便默认显示小部件。但是现在,必须记得给他们看。
我在 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)将更改默认行为,以便默认显示小部件。但是现在,必须记得给他们看。