六、与错误无关的显示消息函数<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
6.
名称:: |
g_message |
功能: |
显示消息 |
头文件: |
#include <glib.h> |
函数原形: |
void g_message(gchar *format,…); |
参数: |
Format 信息 |
返回值: |
无 |
g_message函数显示与错误无关的消息。在传递的字符串前打印 "message:"
7.
名称:: |
g_print |
功能: |
显示消息 |
头文件: |
#include <glib.h> |
函数原形: |
void g_print(gchar *format,…); |
参数: |
format 信息 |
返回值: |
无 |
g_print函数通常用于调试。你可以在开发过程中使用g_print函数,并在实际使用时撤消它的功能。
下面我们用上一节的程序验证着这些函数。
- #include <gtk/gtk.h>
- int main(int argc, char* argv[])
- {
- GtkWidget *window;
- gtk_init(&argc,&argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_widget_show(window);
- g_print(“hello world”);
- g_warning(“hello world”);
- g_message(“hello world”);
- //g_error(“hello world”);
- gtk_main();
- return FALSE;
- }
程序的运行结果为:
#gcc –o base base.c `pkg-config –cflags –libs gtk+-2.0`
#./base
hello world
** (base:8850) : WARNIG ** : hello world
** Message: hello world
七、Timeout 函数
Timeout函数会隔一定时间(毫秒)就自动地调用一次。下面的函数用于添加一个Timeout函数。定时函数类似于回调函数(我们将在下节介绍)。
8.
名称:: |
g_timeout_add |
功能: |
添加一个Timeout函数 |
头文件: |
#include <glib.h> |
函数原形: |
gint gtk_timeout_add(guint32 interval,GtkFunction function,gpointer data); |
参数: |
interval 调用定时函数的时间间隔 function 要调用的函数定时函数 data 传递给定时函数的参数 |
返回值: |
返回一个整形“标志“ |
可以用下面的函数停止调用定时函数:
9.
名称:: |
g_timeout_remove |
功能: |
停止调用定时函数 |
头文件: |
#include <glib.h> |
函数原形: |
void gtk_timeout_remove(gint tag); |
参数: |
tag g_timeout_add函数返回的标志 |
返回值: |
无 |
还可以让回调函数返回FA L S E或0来停止调用定时函数。也就是说,要想让函数继续调用,必须让它返回一个非0值或T R U E。
定期调用的回调函数声明应该是下面的形式:
gint timeout_callback( gpointer data );
下面是程序例子:
- #include <gtk/gtk.h>
- gint n=1;
- gint function(gpointer data);
- int main(int argc, char* argv[])
- {
- GtkWidget *window;
- gpointer data;
- gint sign;
- gtk_init(&argc,&argv);
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_widget_show(window);
- sign=g_timeout_add(500,function,data);
- gtk_main();
- return FALSE;
- }
- gint function(gpointer data)
- {
- g_print(“hello”);
- if(++n>5)
- return 0;
- }
程序每隔500毫秒输出一个hello.输出5个结束。