GTK入门学习:glade的使用
搭建好环境后,在终端敲 glade 就可以启动glade工具。
glade的总体框图:
经常使用控件选择区:列举了经常使用的控件,经常使用的有三类:顶层(主窗体等)。容器(各种布局容器等)。控制和显示(button、便签、图片控件等)
当鼠标放在控件时,会自己主动显示控件的中文文字。同一时候。还能人为设置,例如以下图:
工具栏:经常使用的有下面几个button
打开:打开一个已经存在的glade文件
保存:保存一个glade文件
选择:按了这个button, 才干选择控件
拖拽调整大小:按了这个button,才干移动控件的位置,改变控件的大小
选择控件时,一定要先按工具栏的“选择”button
操作时。支持撤销(Ctrl+z)和恢复(Ctrl+y)等window的快捷键
1)选择主窗体。依据须要设置窗体的对应属性
2)选择布局容器
3)依据须要选择对应的控件,依据须要设置控件的对应属性
2)设置窗体标题:我们一起学习Glade;固定窗体大小;设置窗体位置:中心
3)设置窗体的宽度和高度
A)在界面编辑区里通过拖拽方式进行调整
a) 设置控件的起点坐标
b)设置控件的宽度和高度
4)设置button的属性
A)第一个button作为带文本内容的普通button
B)第二button为没边框的button
button去边框
在代码操作时。我们须要关心的是。怎样通过代码获得这个界面的控件。如本样例中的(主窗体。button),而在界面里,每一个控件都有一个标识名称,这个标识名称就是在控件监视区的名字,我们代码里就通过这个标识名称来获取界面里的控件:
这个标识名称是能够改动的,例如以下图
到这里,我们的界面就已经设置好了(一个主窗体里放了一个固定布局,布局里还放了2个button)。保存这个界面就可以使用。保存的时候选择合适路径以默认方式保存就可以,文件的后缀名能够随意。为了易于辨别文件。我们最好以 .glade 后缀,这里保存为test.glade。
代码操作
能够简单分为两步:
1)读取glade文件
// 创建GtkBuilder对象,GtkBuilder在<gtk/gtk.h>声明
GtkBuilder *builder = gtk_builder_new();
// 读取test.glade文件的信息,保存在builder指针变量里
gtk_builder_add_from_file(builder, "./test.glade", NULL);
2)获取glade文件中的控件
// 获取窗体控件指针。注意"window1" 要和glade里的标志名称匹配
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object (builder, "window1"));
代码例如以下:
#include <gtk/gtk.h> int main(int argc,char *argv[])
{
//1.gtk初始化
gtk_init(&argc,&argv); //2.创建GtkBuilder对象,GtkBuilder在<gtk/gtk.h>声明
GtkBuilder *builder = gtk_builder_new(); //3.读取test.glade文件的信息,保存在builder中
if ( !gtk_builder_add_from_file(builder,"test.glade", NULL)) {
printf("connot load file!");
} //4.获取窗体指针,注意"window1"要和glade里面的标签名词匹配
GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder,"window1")); GtkButton *button = GTK_BUTTON(gtk_builder_get_object(builder, "button1")); const char *text = gtk_button_get_label(button);
printf("text=%s\n", text);
gtk_widget_show_all(window); gtk_main(); return 0;
}
执行结果:
通过上面的样例,利用 glade 工具, 我们能够通过拖放控件的方式高速设计出用户界面。能够非常直观地进行对应的布局。
可是。假设我们要想实现很多其它的功能,如给窗体设置背景图。让button做对应操作,我们还得通过代码实现。
glade仅仅是辅助我们设计窗体,它不是万能的。
源代码下载:http://download.csdn.net/download/lianghe_work/8936799
GTK入门学习:glade的使用的更多相关文章
- GTK入门学习:布局容器之固定布局
前面我们学习的水平.垂直和表格布局容器,控件会跟着容器大小的变化进行自己主动适应.而固定布局容器里的控件则不会跟着变化( 则固定不变 ). 固定布局的创建: GtkWidget *gtk_fixed_ ...
- GTK入门学习:布局练习之计算器
接下来,我们做一个布局练习.例如以下图: 我们用表格布局实现,表格布局參考坐标例如以下: 这里我们用到行编辑控件( GtkEntry ). 行编辑的创建: GtkWidget * gtk_entry_ ...
- GTK入门学习:布局容器之水平布局
假设我们希望窗体里多放加入几个控件,直接加入是不成功的.由于窗体仅仅能容纳一个控件的容器. 这时候.我们须要借助布局容器,我们先把布局容器加入到窗体里.然后再把所须要加入的控件放在布局容器里. 布局容 ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
随机推荐
- vue -- config.js 配置跨域文件
1.在使用vue开发的时候经常要涉及到跨域的问题,其实在vue cli中是有我们设置跨域请求的文件的. 2.当跨域无法请求的时候我们可以修改工程下config文件夹下的index.js中的dev -- ...
- CSS3的属性选择器
CSS3中新增了许多选择器,今天零度给大家说说CSS3的属性选择器. 与CSS2相比,CSS3新增了3种属性选择器:[attr^=value].[attr$=value].[attr*=value]: ...
- 前端js中this指向及改变this指向的方法
js中this指向是一个难点,花了很长时间来整理和学习相关的知识点. 一. this this是JS中的关键字, 它始终指向了一个对象, this是一个指针; 参考博文: JavaScript函数中的 ...
- java高质量缩放图片
可按照比例缩放,也可以指定宽高 import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg.JP ...
- tree ---树状显示
tree命令以树状图列出目录的内容. 语法 tree(选项)(参数) 选项 -a:显示所有文件和目录: -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合: -C:在文件和目录清单加上色彩, ...
- 使用spring-boot 国际化配置所碰到的乱码问题
写好html静态页面 , 也加上了编码格式 , 获取国际化展示在浏览器中还是存在乱码 , 开始以为是浏览器编码格式问题 , 做过处理后任没有得到解决 , 具体的处理方案如下: <meta ht ...
- mycat 不得不说的缘分(转)
,尾声,左兄与任正非.leader-us与马云 新成立的公司里面,有个左兄,很传奇,大一在大学入伍,然后复员专业,来上海学IT,年纪轻轻,睡在地铁站,苦心专研数据库.系统.中间件,现在已经成为了业界大 ...
- hdoj-1870-愚人节的礼物(栈)
愚人节的礼物 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- Vue自定义函数挂到全局方法
方法一:使用Vue.prototype //在mian.js中写入函数 Vue.prototype.getToken = function (){ ... } //在所有组件里可调用函数 this.g ...
- 如何优雅的写UI——(1)MFC六大核心机制-程序初始化
很多做软件开发的人都有一种对事情刨根问底的精神,例如我们一直在用的MFC,很方便,不用学太多原理性的知识就可以做出各种窗口程序,但喜欢钻研的朋友肯定想知道,到底微软帮我们做了些什么,让我们在它的框架下 ...