使用GTK,我试图在GtkTextView
中包含的GtkScrolledWindow
的角落覆盖“更多”提示(但也可以是任何绘图对象)。我在处理程序中为文本视图的expose
信号绘制提示。它可以工作,但当我滚动窗口时,我得到了文物:提示随文本视图的内容一起移动而不会被删除。
为了消除伪影,我在每次滚动后触发重绘。这大部分都有效,但是当你快速滚动时,你仍然可以看到提示上下跳跃。有什么方法可以防止这种情况吗?如果提示只是“浮动”在文本视图的顶部,那就太好了。
我尝试将滚动的窗口封闭在GtkEventBox
中并在其上绘制提示,但这也不起作用;滚动条和文本视图总是在提示上绘制,即使您将事件框的窗口设置为在其子窗口前面也是如此。
更新
如果我将GtkEventBox
的公开回调与g_signal_connect_after()
相关联,则会在GtkScrolledWindow
和GtkTextView
的公开回调后调用它。尽管文本视图仍然覆盖了事件框。我认为这是因为滚动是异步发生的。有人知道如何防止我的图画被覆盖吗?
另一个更新
所以我猜我真正需要的是在异步滚动完成时连接的信号。如果我能找到它的时间,那么我可以在GtkEventBox
上触发另一个公开事件。如何在滚动完成后收到通知?
答案 0 :(得分:1)
使用弹出窗口显示提示。这应该避免滚动工件的所有问题。