我想用cairo来增强gtkentry的外观。为此,我已将回调连接到“公开事件”。在回调中,我调用gtkentry的原始公开事件处理程序。在那之后,我创建cairo上下文并画一些线来破坏cairo。我返回“TRUE”作为回调函数的返回值,这样就不会传播公开事件。
现在我的问题是,我在画从(0,0)到(100100)的直线。但这条线只出现在特肯特里的边境地区。文本所在的位置,它不会出现。
请帮忙。
亲切的问候
-德格什O米什拉

最佳答案

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

GDK_WINDOW (gdk_window_peek_children (GTK_WIDGET (entry)->window)->data);

因此,您可以将此窗口传递给gdk_cairo_create()
如果在代码中应用此项时遇到问题,请粘贴代码-很难在没有任何测试方法的情况下猜测要做什么。

关于c - 使用开罗在gtkentry上绘制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2891444/

10-09 00:39