【问题标题】:drawing with cairo over a GtkBox not using GtkDrawingArea在不使用 GtkDrawingArea 的 GtkBox 上用 cairo 绘图
【发布时间】:2014-04-23 00:41:27
【问题描述】:

我使用 GTK+3 和​​ cairo 用 C 语言编写我的应用程序。

有没有办法在 Vertical GtkBox 顶部画一条线?

问题是我需要用一条线标记一个区域。该区域是一个垂直GtkBox的一行,它不是一个GtkDrawingArea。

这可能吗?

任何有关该问题的信息将不胜感激。

【问题讨论】:

  • 有什么尝试了吗?如何子类化GtkBox,覆盖默认的绘图处理程序(没有信号连接foo,如果我没记错的话,它不能工作,因为它在默认绘图处理程序之前执行之前,重新检查)并在其中调用您的默认 GtkBox draw 处理程序,然后在退出 your_draw_handler 函数之前画线?只是一个想法。还有,代码?请注意,我没有尝试过这个,我只能告诉你我在实现自定义小部件时偶然发现的东西,而不是破解现有的小部件。
  • 嗨!我还没有尝试任何东西。不知道从哪里开始。你提供了一些好的观点。我会检查出来的。谢谢

标签: c gtk cairo


【解决方案1】:

我正在使用 glade 来创建 Gtk Vertical Box。

我将回调连接到绘图信号,并在 glade 中标记了“之后”,这实际上是在基本绘图之后调用我的回调。这使我可以在其中的元素之上进行绘制。

就这么简单;)

【讨论】:

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