上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 71 下一页
摘要: gtk_widget_realize这个函数是用来创建该widget对应的GdkWindow和相关资源的。一般我们用不到这个函数,一般是在创建自定义的widget的时候,需要用到。 我们一般不需要使用这个函数的原因是:当我们调用gtk_widget_show_all函数的时候,就会自动调用这个函数。但是 Foundations of GTK+ Developing一书中提到,对于GtkEventBox,_show_all函数并不会调用realize,所以我们需要手动调用一次这个函数。而 且,调用这个函数之前,需要首先调用gtk_container_add这样类似的函数,这是因为GTK要确定ev 阅读全文
posted @ 2011-04-05 10:24 super119 阅读(1047) 评论(0) 推荐(0) 编辑
摘要: GtkButton继承自GtkBin,所以,要想做image button,特简单。如果是只需要放上一个image的button,如下: GtkWidget *hbox, *playbtn, *pausebtn, *stopbtn, *placeholder, *dlabel; GtkWidget *playimg, *pauseimg, *stopimg; hbox = gtk_hbox_new(FALSE, 5); playbtn = gtk_button_new(); pausebtn = gtk_button_new(); stopbtn = gtk_button_new(); pla 阅读全文
posted @ 2011-04-05 10:24 super119 阅读(1187) 评论(0) 推荐(0) 编辑
摘要: 在程序中加入一句代码: gtk_rc_parse(".gtkrc"); 然后看下面的.gtkrc文件,写成这样就可以调整GtkLabel和GtkProgressBar的字体了。 Code: Select allstyle "title"{ font_name = "Sans 28"}class "GtkLabel" style "title"class "GtkProgressBar" style "title" 阅读全文
posted @ 2011-04-05 10:23 super119 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 1. GtkHBox/GtkVBox的gtk_box_pack_start函数中的expand和fill两个参数的区别: expand就是当Box给我们的widget分配了额外的空间后,我们的widget会占住这个空间,不会让给别人。 fill就是当expand为TRUE的时候,我们不仅占用Box给我们分配的空间,而且会把自己的界面扩大到这个空间上。 所以,简单来说,expand=TRUE, fill=FALSE就是占住空间但是控件本身大小不变;两个都是TRUE,就是不仅占住空间而且控件也会变得和这个空间一样大;expand=FALSE,fill就没了意义。 2. GtkHBox中只要expa 阅读全文
posted @ 2011-04-05 10:23 super119 阅读(1085) 评论(0) 推荐(0) 编辑
摘要: GNU make 指南 翻译: 哈少 译者按: 本文是一篇介绍 GNU Make 的文章,读完后读者应该基本掌握了 make 的用法。而 make 是所有想在 Unix (当然也包括 Linux )系统上编程的用户必须掌握的工具。如果你写的程序中没有用到 make ,则说明你写的程序只是个人的练习程序,不具有任何实用的价值。也许这么说有点 儿偏激,但 make 实在是应该用在任何稍具规模的程序中的。希望本文可以为中国的 Unix 编程初学者提供一点儿有用的资料。中国的 Linux 用户除了学会安装红帽子以外, 实在应该尝试写一些有用的程序。个人想法,大家参考。 C-Scene 题目 #2 多文 阅读全文
posted @ 2011-04-05 10:21 super119 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 1。gcc包含的c/c++编译器 gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译 2。gcc的基本用法 gcc test.c这样将编译出一个名为a.out的程序 gcc test.c -o test这样将编译出一个名为test的程序,-o参数用来指定生成程序的名字 3。为什么会出现undefined reference to 'xxxxx'错误? 首先这是链接错误,不是编译错误,也就是说如果只有这个错误,说明你的程序源码本身没有问题,是你 用编译器编译时参数用得不对,你没有指定链接程序要用到得库,比 阅读全文
posted @ 2011-04-05 10:21 super119 阅读(376) 评论(0) 推荐(0) 编辑
摘要: stdout和stderr都是UNIX/Linux系统两个内置的文件,他们和stdin一起,在每个进程启动后都会自动生成,编号分别是0、1、2 这里需要说明的是,对于stdout,这是一个有Buffer存在的文件流,也就是说,输出到stdout的字符串可能不会被立即就显示出来,所以,对于stdout,可以是用fflush(stdout)这样的方法来强制输出 而stderr不同,由于输出的是错误信息,所以,输出到stderr的字符串都会被立即显示 阅读全文
posted @ 2011-04-05 10:19 super119 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 假设一个数组a,数组元素都是int,数组共有3个元素,那么 a+1整个表达式就等于a[1] 此时如果假设在系统中,一个int使用2个Byte来存储,那么a+1这个表达式其实是将 a的地址向后移动了2个Byte,如果要将a的地址往后移动1个Byte的话,那么可以这样作 unsigned char *p = a; p+1 ---------------- 此时就实现了a的地址向后移动1个Byte,因为unsigned char是以1个Byte来存放 这里可能有个疑问,unsigned char和char有什么区别呢?我们都知道,char其实是ASCII码,使用8个Bit来存储,但是最高位不考虑,也 阅读全文
posted @ 2011-04-05 10:18 super119 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 1、对于单个类来说,这三个范围限定符的意义如下: 公有成员(public member) 在程序的任何地方都可以被访问。实行信息隐藏的类将其public 成员限制在成员函数上,这种函数定义了可以被一般程序用来操纵该类类型对象的操作 私有成员(private member) 只能被成员函数和类的友元访问。实行信息隐藏的类把其数据成员声明为private 被保护成员(protected member) 对派生类derived class 就像public 成员一样,对其他程序则表现得像private 总之,对于单个类的成员函数来说,无论成员变量是public、protected还是private, 阅读全文
posted @ 2011-04-05 10:17 super119 阅读(1066) 评论(0) 推荐(0) 编辑
摘要: 这种函数有两个含义: 1、本函数不会做任何改变类成员变量的事情,也就是说,只会读,不会写成员变量 2、如果new这个类的实例的时候,用的是const变量,如const ClassA handle = new ClassA(); ,那么,这个实例handle只能调用函数末尾被定义为const的函数。 阅读全文
posted @ 2011-04-05 10:17 super119 阅读(376) 评论(0) 推荐(0) 编辑
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 71 下一页