使用cairo在gtkentry上方绘制

使用cairo在gtkentry上方绘制,c,gtk,drawing,2d,cairo,C,Gtk,Drawing,2d,Cairo,我想用cairo来增强gtkentry的外观。为此,我已将回调连接到“expose event”。在回调中,我调用gtkentry最初的暴露事件处理程序。在那之后,我创建了cairo上下文,画了一些线并破坏了cairo。我返回'TRUE'作为回调函数的返回值,这样暴露事件就不会传播 现在我的问题是,我正在从(0,0)到(100100)画一条线。但这条线只出现在肯特里的边境地区。文本所在的位置不显示 请帮忙 问候 -Durgesh O MishraGtkEntry在文本区域中使用了一个附加的Gdk

我想用cairo来增强gtkentry的外观。为此,我已将回调连接到“expose event”。在回调中,我调用gtkentry最初的暴露事件处理程序。在那之后,我创建了cairo上下文,画了一些线并破坏了cairo。我返回'TRUE'作为回调函数的返回值,这样暴露事件就不会传播

现在我的问题是,我正在从(0,0)到(100100)画一条线。但这条线只出现在肯特里的边境地区。文本所在的位置不显示

请帮忙

问候
-Durgesh O Mishra

GtkEntry
在文本区域中使用了一个附加的
GdkWindow
。它有点私有,但您可以使用以下代码访问它:

GDK_WINDOW (gdk_window_peek_children (GTK_WIDGET (entry)->window)->data);
因此,您可以将此窗口传递给
gdk\u cairo\u create()


如果您在将此应用于代码时遇到问题,请粘贴代码-如果没有任何测试方法,很难猜到该做什么。

GtkEntry
在文本区域使用附加的
GdkWindow
。它有点私有,但您可以使用以下代码访问它:

GDK_WINDOW (gdk_window_peek_children (GTK_WIDGET (entry)->window)->data);
因此,您可以将此窗口传递给
gdk\u cairo\u create()

如果您在将此应用于代码时遇到问题,请粘贴代码-如果没有任何测试方法,很难猜测该做什么