该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

楼主可以通过GMainLoop(在Gtk内会包装成在gtk_main())和GSource等方法.相关知识请查阅Glib的手册

以下是Glib手册相关内容及用到的函数devhelp截图,可到glib网站查看

如果对Glib的对象系统感兴趣可查看相应Gobject手册(跟Glib手册是独立分开的),如下图(devhelp截图,可到glib网站查看)

这里根据楼主的情况,写了个例子Sample,希望对你或其他人有用.

这是运行时截图

以下是代码:

/*

* main.c

*

* Created on: 2018年3月5日

* Author: tom

*/

#include

#include

#include

#include

gboolean my_timeout_func (gpointer user_data){

GtkEntry *entry=user_data;

gint index=g_object_get_data(entry,"entry_index");//这里直接忽略GPOINTER_TO_INT(),按编程习惯应写成 gint index=GPOINTER_TO_INT(g_object_get_data(entry,"entry_index"));

gint count=g_object_get_data(entry,"entry_count");//同上

if(count>=10){

return G_SOURCE_REMOVE;//移除该"定时GSource",GMainLoop往后不再执行该"定时GSource".表现为GtkEntry内容不再更新.

}

count++;

g_object_set_data(entry,"entry_count",GINT_TO_POINTER(count));//更新GtkEntry的timeout次数,原内部相应数据会被覆盖;

gchar *str=g_strdup_printf("GtkEntry%d:timeout %d times",index,count);//创建要显示的"字符串".

gtk_entry_set_text(entry,str);//把刚生成的"字符串"设置GtkEntry显示的字符串

g_free(str);//由于创建的"字符串"是内存动态分配,须手动释放字符串

return G_SOURCE_CONTINUE;//继续执行该"定时GSource",表现为GtkEntry内容定时更新.

};

int main(int argc,char *argv[]){

gtk_init(&argc,&argv);

gint i=0;

GtkWindow *mwin=gtk_window_new(GTK_WINDOW_TOPLEVEL);

GtkBox *box=gtk_box_new(GTK_ORIENTATION_VERTICAL,10);//创建可包含10个GtkEntry的GtkBox容器.

GtkEntry *entry[10];//创建Entry控件指针的数组

for(i=0;i<10;i++){

entry[i]=gtk_entry_new();

//由于GtkEntry是承继GObject,所以可以用GObject的方法操作GtkEntry,这里涉及一些GObject的对象系统知识,请查看Glib-Object的开发手册(注意:该手册跟Glib开发手册是分开独立);

//这里注意一下,GINT_TO_POINTER(i)是把int数值转成指针形式,可通过GPOINTER_TO_INT()把数值转回int形式,若嫌麻烦可忽略不用,只是可读性差些.

g_object_set_data(entry[i],"entry_index",GINT_TO_POINTER(i));//往GtkEntry附加自定义数据"entry_index",用于处理GtkEntry的编号

g_object_set_data(entry[i],"entry_count",GINT_TO_POINTER(0));//往GtkEntry附加自定义数据"entry_count",用于处理GtkEntry的timeout次数

g_timeout_add(500,my_timeout_func,entry[i]);//用g_timeout_***方法往主循环添加定时执行函数,每500ms执行函数一次

//还有类似g_timeout_add_seconds(),只是计时单位为妙.下面的注释的语句跟上面功能一样.

//g_timeout_add_seconds(5,my_timeout_func,entry[i]);

//glib还有类似g_idle_add()方法,在Gmain空闲的时候随机执行指定函数,具体请看Glib开发手册GMainLoop一节;

gtk_box_pack_start(box,entry[i],FALSE,FALSE,0);//把GtkEntry放入GtkBox容器;

}

gtk_container_add(mwin,box);//把GtkBox容器放入主窗口;

g_signal_connect(mwin,"delete_event",gtk_main_quit,NULL);

gtk_widget_show_all(mwin);

gtk_main();

return EXIT_SUCCESS;

}

php gtk不更新了,[新人求助] gtk控件动态更新相关推荐

  1. select2控件动态更新option

    原文连接:https://blog.csdn.net/u010784959/article/details/77893674 ------------------------------------- ...

  2. Word图片上传控件(WordPaster)更新-2.0.15版本

    更新说明: 1.   增加对webp图片的支持,支持微信公众号图片的下载. 效果参考:http://www.ncmem.com/doc/view.aspx?id=9761f8ce4fe04d0ab0f ...

  3. ASP.net GridView控件(删除/更新功能)

    一.说明 部分代码的运用放在以往的教程中,本部分只讲解删除/更新功能 二.前端 我们在其控件上添加事件: 红色为行删除事件 绿色为行更新事件 双击后,即可在后台自动生成对应的方法体 其代码显示: &l ...

  4. React-Native开发中常用的第三方控件持续更新

    2023.03.22更新 React Native ECharts 项目是一个开源的库,用于在 React Native 应用程序中创建交互式图表.通过用户友好的设计和简单的 API,开发者可以创建各 ...

  5. html表格内容自动更新,ElementUI table 组件展开 expand,动态更新数据时,视图没有自动更新...

    这是因为在给table的数据赋值时,展开的视图对应的字段不存在.(动态增加属性) 拿到table数据后,先把展开字段初始化,然后再赋值,问题就解决了~~ 比如,之前是:this.list = api. ...

  6. 【更新】Project 读写管理控件Aspose.Tasks V17.5发布 | 附下载

    2019独角兽企业重金招聘Python工程师标准>>> Aspose.Tasks for .NET 17.5 更新 功能和改进 核心 概述 类别 TASKSNET-1918 具有自定 ...

  7. java script 添加控件,【更新】GLG工具包Visualization and HMI Toolkit更新至v3.6,支持Java Script...

    Visualization and HMI Toolkit的为开发高级图形的动态界面而设计的艺术化的框架:它不仅仅是简单的按键与菜单,它是全动态的能显示动态数据以及能反映用户互动的图片对象.它不仅仅是 ...

  8. python所有变量更新_在python中,如何动态更新变量?

    您正在使用一个id(而不是一个id列表)在元组上循环:((1424794931452.0,), (1424794931645.0,), (1424794931821.0,), (14247949320 ...

  9. 编历修改工作表中的控件属性(更新条形码)

    =EMBED("BARCODE.BarCodeCtrl.1","") 宏: Sub 按钮86_Click() Dim i As Integer For i = ...

  10. dymola汇总学习篇-控件-Modelica-Mechanics-20200722更新

    [1]旋转副revolute 包含frame_a+frame_b与flange_a+flange_b两组关联 frame_a+frame_b是用来旋转的,我把flame_a想象成不动的法兰,frame ...

最新文章

  1. 误删了数据库,我只能跑路么?
  2. Javascript小括号“()”的多义性
  3. AVA:Netflix的剧照个性化甄选平台
  4. Polygonal-Light Shading with LTC
  5. 少女风vue组件库制作全攻略~~
  6. Java getinteger的用法,Java AtomicInteger类的使用方法详解
  7. 辗转相除法求最大公因数
  8. java 俄罗斯方块 教程_俄罗斯方块
  9. cbc cryptojs 前后端_AES加密前后端加解密不一致
  10. 力扣 1723. 完成所有工作的最短时间 二分+回溯+剪枝/状压dp
  11. 计算机软件ae常用英语,AE英文插件该怎么翻译?
  12. FPGA的NIOS-||的开发入门
  13. Linux C语言实现TCP客户端与服务器
  14. 【总结】C#上传excel文件到Sql server数据库
  15. Vue 实现可拖拽、拖拽组件
  16. Java多线程,Android多线程
  17. STM32 IAP 在线升级详解
  18. BL9342降压型电源芯片
  19. gjson - Golang 解析 JSON
  20. HTML+CSS第二部分_01(html进阶)

热门文章

  1. Linux 中复制问题,错误显示 cp:omitting directory
  2. C++学习(一五九)Qt的场景图Scene Graph
  3. springmvc视图解析器详解
  4. [初学Python]利用某网站的功能写一个磁力链转种子工具
  5. 安卓选择市区的省市区联动
  6. c程序怎样往mysql里面添加字符串指针指向的字符串
  7. python之pandas基础知识以及练习题
  8. linux虚拟机+显卡驱动,ubuntu12.4优化android虚拟机和安装intel显卡驱动
  9. 实验一 第2关:从自然数中取3个数进行组合之递归算法任务描述
  10. 关于程序员的那些段子,你能看懂几个?