首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GtkTextView中绘图,然后清除

在GtkTextView中绘图,然后清除
EN

Stack Overflow用户
提问于 2016-07-29 03:10:19
回答 1查看 230关注 0票数 0

我只需在一个“绘制”信号中绘制GtkTextView中的特定内容,

在下一个信号发射中,我在GtkTextView中画了不同的东西。

在下一次信号调用中,如果没有要绘制的东西,它会清除所有以前的绘图,这是很好的。

但是当它要绘制新的内容时,它会同时绘制所有以前的内容,而不仅仅是所需的内容。这是不好的。

我尝试了很多方法来防止这种行为,每一个可能的结合cairo_save()cairo_restore()似乎都没有做到这一点。

我怎么能使它不是一次画以前的每一幅画,而是只画一张新的?

EN

回答 1

Stack Overflow用户

发布于 2016-07-29 23:43:15

“绘制”信号只用于更改GtkTextView的常量外观。

对于我想要的,这可能会按要求工作:

代码语言:javascript
复制
void draw_on_textview (GtkWidget* textview)
{
    cairo_t* cr = gdk_cairo_create(gtk_widget_get_window(textview));

    // Do ALL the drawing AT ONCE here..

    cairo_destroy(cr);
}

当需要删除内容时:

代码语言:javascript
复制
gtk_widget_queue_draw(textview);

然而,这仍然与适当的方法略有不同。正如@jcoppens所述,必须使用draw_layer。因此,我不认为这是一个答案,而是一些可能的方法,如果没有其他人提供更好的方法,我可以选择使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38649940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档