【问题标题】:drawing above gtkentry using cairo使用 cairo 在 gtkentry 上方绘图
【发布时间】:2010-05-23 19:18:57
【问题描述】:

我想使用 cairo 来增强 gtkentry 的外观。为此,我已将回调连接到“expose-event”。在回调中,我调用 gtkentry 的原始暴露事件处理程序。之后,我创建了 cairo 上下文并绘制了一些线条并销毁了 cairo。我返回“TRUE”作为回调函数的返回值,这样暴露事件就不会传播。

现在我的问题是,我正在从 (0,0) 到 (100,100) 画线。但线只出现在 gtkentry 的边界区域。文字所在的地方,没有出现。

请帮忙。

亲切的问候 -Durgesh O Mishra

【问题讨论】:

    标签: c gtk drawing 2d cairo


    【解决方案1】:

    GtkEntry 为文本区域使用额外的GdkWindow。它是私有的,但您可以使用以下代码访问它:

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

    所以,您可以将此窗口传递给gdk_cairo_create()

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      相关资源
      最近更新 更多