c/c++语言开发共享在GtkScrolledWindow或GtkEventBox上绘画

使用GTK,我试图在GtkScrolledWindow包含的GtkTextView的角落覆盖一个“更多”提示(但它也可以是任何绘图对象)。 我在处理程序中绘制文本视图的expose信号的提示。 它可以工作,但是当我滚动窗口时,我得到了工件:提示随文本视图的内容一起移动而不会被删除。

为了消除伪影,我在每次滚动后触发重绘。 这大部分都有效,但是当你快速滚动时,你仍然可以看到提示上下跳动。 有什么办法可以防止这种情况吗? 如果提示只是“浮动”在文本视图的顶部,那将是很好的。

我尝试将滚动窗口封闭在GtkEventBox并在其上绘制提示,但这也不起作用; 滚动条和文本视图总是在提示上绘制,即使您将事件框的窗口设置为在其子窗口前面也是如此。

UPDATE

如果我使用g_signal_connect_after()连接GtkEventBox的公开回调,那么在GtkScrolledWindowGtkTextView的公开回调之后调用它。 尽管文本视图仍然覆盖了事件框。 我认为这是因为滚动是异步发生的。 有人知道如何防止我的图画被覆盖吗?

另一个更新

所以我想我真正需要的是在异步滚动完成时连接的信号。 如果我能找到它的时间,那么我可以在GtkEventBox上触发另一个公开事件。 滚动完成后如何收到通知?

    使用弹出窗口提示。 这应该避免滚动工件的所有问题。

      以上就是c/c++开发分享在GtkScrolledWindow或GtkEventBox上绘画相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/560066.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐