这例子,使用窗口的,和我的思路不同。root窗口明确的有expose事件的,就是奇怪,调用不到。GdkEventMask,我也强制开启并测试了。

不写use strict不怕出事,lol,测试而已。其实也从来没出过问题。perl历来随手写。

在 Wed, 07 Sep 2011 08:48:05 +0800,snyh <[email protected]> 写道:

On 09/05/2011 02:08 PM, eexpress wrote:
#!/usr/bin/perl

use Gtk2 "-init";

$file="$ENV{HOME}/tt.png";

Gtk2->init;
$screen=Gtk2::Gdk::Screen->get_default;
$window=$screen->get_root_window;
#$screen->broadcast_client_message(Gtk2::Gdk::Event->new("expose"));
#$window->signal_connect('expose_event', \&expose, $window);

$gc = Gtk2::Gdk::GC->new ($window, undef);
($real_drawable,$x_offset,$y_offset)=$window->get_internal_paint_info;
expose();
#Gtk2->main_iteration while Gtk2->events_pending;
Gtk2->main();
#Gtk2->main_iteration;

sub expose {
$pixbuf=Gtk2::Gdk::Pixbuf->new_from_file($file);
($format,$width,$height)=$pixbuf->get_file_info($file);
$pixbuf->render_to_drawable($real_drawable,$gc,0,0,100,100,$width,$height,'normal',0,0);

}

请人帮忙测试下,搞定啊。
画的图,都被擦除了。
要直接画图到桌面上 参考这个吧
http://gtk2-perl.sourceforge.net/doc/gtk2-perl-study-guide/x2176.html

你不 use strict不怕出事吗... >_<



--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复