首页 > 解决方案 > GtkRevealer 使文本视图绘图出现故障

问题描述

在我的程序开发过程中,我遇到了一个无法解决的绘图故障。我正在使用 GtkRevealer 在另一个框上方显示和隐藏 GtkInfoBar,该框包含一个带有 GtkTextView(实际上是 GtkSourceView)的滚动窗口,就像它在 gedit 中一样。整个东西都装在一个 GtkPaned 中。

当我通过显示器隐藏信息栏时,文本视图中会出现一个黑色区域,当必须重新绘制小部件时(例如,当我单击文本视图以放置光标时)它会消失。此外,不会出现此故障如果我放大窗口的默认分辨率,出于兼容性原因,它是 640x480。我知道这可能很难重现,但我不知道谁遇到了同样的问题。他可能知道解决此问题的方法。也欢迎任何想法。我将准确地绘制 gedit 上的故障外观(尽管它不会在 gedit 中发生或确实发生但我无法达到正确的分辨率)。 在此处输入图像描述

我试图强制重绘,gtk_widget_queue_draw()但什么也没有发生,也不会,因为它没有什么可重绘的。我现在将尝试自动放置光标。它可能有效,但在功能上还不够。 编辑: 令人惊讶的是它没有工作。抓住焦点并放置光标对出现故障的视觉行为没有影响。这次我什至不得不制作一条新线来修复它。我必须使用大于特定点的值调整窗口大小的事实可能意味着故障可能是由于对齐错误造成的,但这并不能解释为什么在装订线中添加新行或文本标记来着色整条线也去除了黑场。

标签: cwindowswindows-7gtkvisual-glitch

解决方案


目前,此错误已在其他具有文本视图的程序中遇到,但尚未报告为错误。也许这与它难以复制的事实有关。

我发现隐藏 gtk 文本视图,gtk_widget_hide()然后用它显示它gtk_widget_show()。这种视觉故障的闪烁并不明显,可能是由于 GTK+ 是基于事件的并等待函数返回进程更改。


推荐阅读