Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

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"的形态.

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2223 24 25 26 27 28 下一页


上一篇:GTK+/Gnome应用开发   下一篇:GTK v1.2 Tutorial(英文)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·Motorola微处理器bootloader分析与应用
·Fedora Core5 NFS服务器搭建过程介绍
·Linux系统:让内存不再泄漏的实用技巧
·新手看招 手把手教你安装VMware虚拟机
·“侵权事件” 红帽称微软企图干扰用户
·删除Linux后 如何找回Windows启动菜单
·菜鸟乐园 Linux中常见文件系统格式介绍
·Linux操作系统下IPTables配置方法详解
·实用技巧 Linux系统的经典使用技巧八则
·Linux系统文件优化及磁盘检查方法介绍
推荐文章
·和luster一起学习系统调用(5)
·Java入门(2) 面向对象的程序设计
·Linux 99问(四)
·Enhydra入门-走进中国的Enhydra
·Servlet、Jsp性能优化
·解读Linux文件权限的设置方法
·了解你的敌人:Statistics
·在LINUX下安装 Sybase ASE 11.0.3.
精彩文章
·读核日记(一)
·活用Linux的后台任务
·如何配置Linux操作系统安全管理服务
·UW IMAP 服务器的性能优化
·在linux下如何使用USB盘
·怎样设置一个档案来作为 linux 的转
·Red Hat测试新版Linux 支持Xen虚拟
·Linux Remote-Boot mini-HOWTO
·GAWK 手册(七)
·RedHat环境下使用APT在线更新系统
·系统管理进阶-用户管理
·Linux命令Man解释:usermod:修改使用
·X-Window中如何设置字体
·基于IPsec的虚拟专用网在Linux上的
·Linux下的IP隧道研究(2)
·Linux下新手装网卡指南
·Linux 网管 123 --- 第9章. 各种杂
·设置一个高容量的Linux POP3服务器
·Linux指令大全
·Ethernet HOWTO Linux以太网-HOWTO
·FreeBSD 5.0 硬盘安装指南
·Java入门(8) 创建新类
·进程vs线程,如何选择?
·网站综合实例
·搭建基于Linux桌面环境的影音平台
·提升PHP速度全攻略
Power by linux-cn.com 粤ICP备05006655号