首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编辑树状单元格后重绘GtkDrawingArea

编辑树状单元格后重绘GtkDrawingArea
EN

Stack Overflow用户
提问于 2021-12-19 02:31:16
回答 1查看 21关注 0票数 0

我在写一个打印银行存款单的程序。UI包括存款凭证的GtkDrawingArea预览。当用户输入要存入的金额时,预览将使用新的/修改的金额和交存的总额进行更新。

我用什么信号回叫组合来重绘预览?

我的当前实现使用了两个信号回调组合。第一个信号回叫是在包含存款量的小区上进行的.当信号“编辑”被触发时,回调deposit_amount_edited就会运行。

代码语言:javascript
运行
复制
g_signal_connect(G_OBJECT(rendererChecks), "edited", G_CALLBACK(deposit_amount_edited), pointer_passer);

在回调draw_background中,我在绘图区域发出一个绘图信号。

代码语言:javascript
运行
复制
void deposit_amount_edited(GtkCellRendererText *self,
                     gchar *path,
                     gchar *new_text,
                     gpointer data) {
  
    GHashTable *pointer_passer = (GHashTable *)data; /* Hash table containing all sorts of pointers */

    /* Retrieve the pointer to the GtkDrawingArea */
    GtkDrawingArea *drawing_area = (GtkDrawingArea *)g_hash_table_lookup(pointer_passer, &KEY_DRAWING_AREA);
  
    g_signal_emit_by_name(drawing_area, "draw", data); /*Seg fault */
}

我在g_signal_emit_by_name上发现了一个分割错误。

更重要的是,在GtkTreeView中编辑单元格后,重新绘制预览的最佳方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-12-19 18:14:23

虽然我没有第一个问题的答案,但我确实有第二个问题的答案。在上面的函数deposit_amount_edited中,我用正确绘制预览的gtk_widget_queue_draw(GTK_WIDGET(drawing_area));替换了g_signal_emit_by_name

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

https://stackoverflow.com/questions/70408611

复制
相关文章

相似问题

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