代码之家  ›  专栏  ›  技术社区  ›  ptomato

在gtkscrolledwindow或gtkeventbox上喷漆

  •  4
  • ptomato  · 技术社区  · 15 年前

    使用gtk,我试图在 GtkTextView 包含在 GtkScrolledWindow . 我在处理程序中为 expose 文本视图的信号。它可以工作,但是当我滚动窗口时,我会得到工件:提示会随文本视图的内容一起移动,不会被删除。

    为了消除工件,我在每次滚动后触发一个重绘。这基本上是可行的,但是当您快速滚动时,仍然可以看到上下跳跃的提示。有什么方法可以防止这种情况发生吗?如果提示只是在文本视图的顶部“浮动”,那就更好了。

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

    更新

    如果我连接 GTKEVENBOX 的公开回调 g_signal_connect_after() ,然后在 GTKscrolledwindow公司 GTKTestVIEW . 不过,文本视图仍会在事件框上绘制。我认为这是因为滚动是异步进行的。有人知道我怎样才能防止我的画被改写吗?

    另一个更新

    所以我猜我真正需要的是一个信号,当异步滚动完成时,连接到它。如果我知道是什么时候,那么我可以在 GTKEVENBOX . 滚动完成后如何获得通知?

    1 回复  |  直到 15 年前
        1
  •  1
  •   ergosys    15 年前

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