GTK入门导引
来源:Linux-cn.com
作者:Webmaster
时间:2007-05-05
点击:
[ 收藏] [ 投稿]
|
17.7 工具及除错函数
gchar* g_strdup(const gchar *str);
gchar* g_strerror(gint errnum);
|
我建议您使用这个来做所有错误讯息. 这玩意好多了. 它比perror()来的具有可移植性. 输出为以下形式:
program name:function that failed:file or further description:strerror
|
这里是"hello world"用到的一些函数:
g_print("hello_world:open:%s:%s
", filename, g_strerror(errno));
void g_error(gchar *format, ...);
|
显示错误讯息, 其格式与printf一样, 但会加个"** ERROR **: ", 然後离开程式. 只在严重错误时使用.
void g_warning (gchar *format, ...);
|
跟上面一样, 但加个"** WARNING **: ", 不离开程式.
void g_message (gchar *format, ...);
|
加个"message: ".
void g_print(gchar *format, ...);
|
printf()的替代品.
最後一个:
gchar* g_strsignal (gint signum);
|
列印Unix系统的信号名称, 在信号处理时很有用.
这些大都从glib.h中而来.
18. 设定视窗物件属性
这里描述如何操作视窗物件的函数集. 可用於设定外形, 空格, 大小等等.
(Maybe I should make a whole section on accelerators.)
voidgtk_widget_install_accelerator (GtkWidget*widget,
GtkAcceleratorTable *table,gchar*signal_name,
gcharkey,guint8modifiers);
voidgtk_widget_remove_accelerator(GtkWidget*widget,
GtkAcceleratorTable *table,gchar*signal_name);
voidgtk_widget_activate(GtkWidget*widget);
voidgtk_widget_set_name(GtkWidget*widget,gchar*name);
gchar* gtk_widget_get_name(GtkWidget*widget);
voidgtk_widget_set_sensitive(GtkWidget*widget,gint sensitive);
voidgtk_widget_set_style(GtkWidget*widget,GtkStyle*style);
GtkStyle*gtk_widget_get_style (GtkWidget *widget);
GtkStyle*gtk_widget_get_default_style(void);
voidgtk_widget_set_uposition(GtkWidget*widget,gint x,gint y);
voidgtk_widget_set_usize(GtkWidget*widget,gint width,gint height);
voidgtk_widget_grab_focus(GtkWidget*widget);
voidgtk_widget_show(GtkWidget*widget);
voidgtk_widget_hide(GtkWidget*widget);
|
19. GTK的rc档
GTK有处理软体内定值的一套方法, 即使用其rc档. 这些可以用来设定颜色, 并且可以用pixmaps来设定某些物件的背景.
19.1 rc档的功能
当您的软体启动时, 您应该呼叫这一行:
void gtk_rc_parse (char *filename);
|
将您的档名传入做为参数. 这会使GTK来分析这个档案, 并使用设定值来设定物件的形态.
如果您希望有特别样子的物件, 但可从另一个物件做为基础来产生, 可以用这个:
void gtk_widget_set_name (GtkWidget *widget,gchar *name);
|
传入您新产生的物件做为第一个参数, 您要给它的名字做为第二个参数. 这样的话可以让你透过rc档来改变该物件的属性.
如果我们用像以下的呼叫:
button = gtk_button_new_with_label ("Special Button");
gtk_widget_set_name (button, "special button");
|
则这个按钮被给了一个名字叫"special button" 并且会被指向rc档中的"special button.GtkButton". [<--- 要是我错了, 修正我!]
以下的rc档设定主视窗的属性, 并让所有子视窗继承其形态. 在程式中的程式码为:
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name (window, "main window");
|
而该形态则在rc档中定义为:
widget "main window.*GtkButton*" style "main_button"
|
这会设定所有GtkButton物件, 成为在"main window"中的"main_buttons"的形态.
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一篇:GTK+/Gnome应用开发
下一篇:GTK v1.2 Tutorial(英文)
【文章评论】
【收藏本文】
【推荐好友】
【打印本文】
【我要投稿】 【论坛讨论】
更多相关文章
|