in C++ gtk :: drawarea:如何刷新图像
问题描述:
我在C++中使用gtkmm作为GUI。 我有一个Gtk::DrawingArea
其上我的图像(文件名):in C++ gtk :: drawarea:如何刷新图像
class MyArea : public Gtk::DrawingArea
{
public:
MyArea(string filename)
{
m_image = Gdk::Pixbuf::create_from_file(filename.c_str());
}
virtual bool on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
if (!m_image)
return false;
Gtk::Allocation allocation = get_allocation();
const int width = allocation.get_width();
const int height = allocation.get_height();
// Draw the image in the middle of the drawing area, or (if the image is
// larger than the drawing area) draw the middle part of the image.
Gdk::Cairo::set_source_pixbuf(cr, m_image, (width - m_image->get_width())/2, (height - m_image->get_height())/2);
cr->paint();
return true;
}
Glib::RefPtr<Gdk::Pixbuf> m_image;
}
我想有改变图像(具有文件名2)的功能。但我找不到如何: -/
有人可以帮我这个请。谢谢
我试图调用'创建我的文件名2另一m_image后得出()'或'signal_draw',但它不工作 – Jav 2013-02-11 13:07:35