想用gtk做图像处理 但是又不想显示窗口
我的需求是这样的:在linux下,我要实现这么一个功能:创建一个画布,然后在画布上画线或打字,最后把画布的每个像素取出来。但是整个过程不能让窗口显示出来。
如下是我写的程序:
#include <gtk/gtk.h>
gboolean on_darea_expose (GtkWidget *widget, GdkEventExpose *event, gpointer user_data);
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (GTK_OBJECT (window), "expose-event",
GTK_SIGNAL_FUNC (on_darea_expose), NULL);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
gboolean on_darea_expose (GtkWidget *widget, GdkEventExpose *event, gpointer user_data)
{
GdkGC *gc = gdk_gc_new(GDK_DRAWABLE(widget->window));
GdkColor color;
gdk_color_parse("darkred", &color);
gdk_gc_set_foreground(gc, &color);
gdk_draw_line((widget->window), gc, 10, 10,50,50);
return TRUE;
}
这样确实是可以画出线来(取像素暂时先不管),但是窗口显示出来了。
倘若要窗口不显示出来怎么办?给实例源码马上给分! (不要说显示再隐藏哦,我要的是干脆不显示) gtk_widget_show_all (window);
这行删了就好。。。 求高手出马! 在线等 你只要画啊,不需要显示出来,直接调用那个函数不就可以了?
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
on_darea_expose (window, NULL, NULL) ;
/* write what do you want to save */
gtk_main ();
return 0;
} 把GTK_WINDOW_TOPLEVEL改为GTK_WINDOW_POPUP,这样可以去掉窗口管理
内容来自[手机版]
页:
[1]