当前位置: 技术问答>linux和unix
关于GTK的继承
来源: 互联网 发布时间:2016-08-26
本文导语: 我想做一个窗口类,在这个类里,把border涂成蓝色,比如border的宽度是10,就把窗口的上下左右都画成蓝色,然后其他窗口继承这个类,就不需要再画边框了,能实现么?我现在是这么做的,在这个窗口类里重...
我想做一个窗口类,在这个类里,把border涂成蓝色,比如border的宽度是10,就把窗口的上下左右都画成蓝色,然后其他窗口继承这个类,就不需要再画边框了,能实现么?我现在是这么做的,在这个窗口类里重写了expose_event,其他窗口继承的时候,边框是画上了,但是按钮等控件都显示不出来了,都被覆盖掉了
|
你代码是怎么写的,直接继承窗体?
也许你需要自己在调用一下 容器的 expose事件,给所有的子控件发送expose消息。你看一下文档的最开始中的“The GTK+ Drawing Model” http://library.gnome.org/devel/gtk/stable/chap-drawing-model.html
默认的expose实现是这样的,
也许你需要自己在调用一下 容器的 expose事件,给所有的子控件发送expose消息。你看一下文档的最开始中的“The GTK+ Drawing Model” http://library.gnome.org/devel/gtk/stable/chap-drawing-model.html
默认的expose实现是这样的,
static gint
gtk_window_expose (GtkWidget *widget,
GdkEventExpose *event)
{
if (!gtk_widget_get_app_paintable (widget))
gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_NORMAL,
GTK_SHADOW_NONE, event->area, widget, "base", 0, 0, -1, -1);
if (GTK_WIDGET_CLASS (gtk_window_parent_class)->expose_event)
return GTK_WIDGET_CLASS (gtk_window_parent_class)->expose_event (widget, event);
return FALSE;
}
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。