Gtk基础学习总结(一)
第一个GTK程序例子:
#include <stdio.h>
#include <gtk/gtk.h>
int main(int argc, char *argv[])
{
gtk_init(NULL,NULL); //初始化GTK
GtkWindow *window =gtk_window_new(GTK_WINDOW_TOPLEVEL); //新建一个window窗口
gtk_window_set_title(window,"窗口标题"); //设置窗口标题
g_signal_connect(window,"destroy",gtk_main_quit,0); //设置窗口的"destroy"信号(事件)的处理函数“gtk_main_quit()”
gtk_widget_show(window); //显示窗口
gtk_main(); //程序阻塞
return 0;
}
一、常用方法
//widget操作函数
void gtk_widget_show(widget);
void gtk_widget_hide(widget);
void gtk_widget_set_sensitive(widget,sensitive);
void gtk_widget_set_size_request(widget,width,height);
//window操作函数
gtk_window_set_resizable(window,resizable);
gtk_window_set_position(window,GTK_WIN_POS_CENTER_ALWAYS);
gtk_window_maximize(window);
gtk_container_add(container,widget); //将widget装到container中
gtk_AAA_get_BBB();
gtk_AAA_set_BBB();
//gtk_widget_set_title(widget,"标题");
二、GtkBox(盒子)布局
//创建盒子
GtkBox *box1=gtk_box_new(GTK_ORIENTATION_HORIZONTAL,0);
//GtkBox *box1=gtk_box_new(GTK_ORIENTATION_VERTICAL,0);
gtk_container_add(window,box1);
gtk_widget_show(box1);
//添加按钮1
GtkButton *btn1=gtk_button_new();
gtk_button_set_label(btn1,"按钮1");
gtk_box_pack_start(box1,btn1,FALSE,FALSE,0);
gtk_widget_show(btn1);
//添加按钮2
GtkButton *btn2=gtk_button_new();
gtk_button_set_label(btn2,"按钮2");
gtk_box_pack_start(box1,btn2,FALSE,FALSE,0);
gtk_widget_show(btn2);
//添加文本框1
GtkEntry *entry1=gtk_entry_new();
gtk_box_pack_start(box1,entry1,FALSE,FALSE,0);
gtk_widget_show(entry1);
三、网格布局
/*
GtkGrid *grid1=gtk_grid_new();
gtk_container_add(window,grid1);
gtk_widget_show(grid1);
//gtk_grid_attack(GtkGrid,widget,int left,int top,int width,int height);
//添加按钮1
GtkButton *btn1=gtk_button_new();
gtk_button_set_label(btn1,"按钮1");
gtk_grid_attach(grid1,btn1,0,0,1,1);
gtk_widget_show(btn1);
//添加按钮2
GtkButton *btn2=gtk_button_new();
gtk_button_set_label(btn2,"按钮2");
gtk_grid_attach(grid1,btn2,1,0,1,1);
gtk_widget_show(btn2);
//添加按钮3
GtkButton *btn3=gtk_button_new();
gtk_button_set_label(btn3,"按钮3");
gtk_grid_attach(grid1,btn3,0,1,2,2);
gtk_widget_show(btn3);
*/
附:以上内容为本人学习了杨中科老师的《C语言也能干大事(第三版)》的教学视频之后,对所学的内容进行的总结。
Gtk基础学习总结(一)的更多相关文章
- Gtk基础学习总结(二)
一.信号.事件 void g_signal_connect(instance,char* signalName,callback,gpointerobject); //instance:gtk控件 i ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- IOS基础学习-2: UIButton
IOS基础学习-2: UIButton UIButton是一个标准的UIControl控件,UIKit提供了一组控件:UISwitch开关.UIButton按钮.UISegmentedContro ...
- HTML5零基础学习Web前端需要知道哪些?
HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...
- python入门到精通[三]:基础学习(2)
摘要:Python基础学习:列表.元组.字典.函数.序列化.正则.模块. 上一节学习了字符串.流程控制.文件及目录操作,这节介绍下列表.元组.字典.函数.序列化.正则.模块. 1.列表 python中 ...
- python入门到精通[二]:基础学习(1)
摘要:Python基础学习: 注释.字符串操作.用户交互.流程控制.导入模块.文件操作.目录操作. 上一节讲了分别在windows下和linux下的环境配置,这节以linux为例学习基本语法.代码部分 ...
- CSS零基础学习笔记.
酸菜记 之 CSS的零基础. 这篇是我自己从零基础学习CSS的笔记加理解总结归纳的,如有不对的地方,请留言指教, 学前了解: CSS中字母是不分大小写的; CSS文件可以使用在各种程序文件中(如:PH ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
随机推荐
- redis安装使用教程
一:安装redis 1.下载redis并安装 $wget http://redis.googlecode.com/files/redis-2.2.10.tar.gz $tar zvxf redis-2 ...
- ssm之mapper异常 Result Maps collection already contains value for com.ssj.mapper.UserMapper 和 Type interface com.ssj.mapper.UserMapper is already known to the MapperRegistry.
异常一:Result Maps collection already contains value for com.ssj.mapper.XXXMapper 原因分析:XXXmapper.xml文件中 ...
- celery-rabbitmq 安装部署
一:Python安装 1.下载python3源码 wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 2.解压 tar xf P ...
- Installshield 宏定义控制版本
定义宏 在Build =>Setting => 以空格为准定义宏 使用宏 在方法里 #if 宏名称 代码 #else 代码 #endif
- python的曲线平滑工具,及python画一条线中包含不同粗细不同颜色的画线方法
from scipy.signal import savgol_filter import matplotlib.pyplot as plt cc = savgol_filter(c, 99, 1) ...
- python学习笔记(十一)redis的介绍及安装
一.redis简介 1.redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库. 2.redis的官网地址,非常好记,是redis.io. ...
- Boinformatics-2018-10-1-目录
1.基因分析 --Using standard microbiome reference groups to simplify beta-diversity analyses and facilita ...
- django内置 Contenttypes 框架
一.什么是Django ContentTypes? 1.Django 包含一个ContentTypes 应用,它可以追踪安装在你的Django 项目里的所有应用,并提供一个高层次的.通用的接口用于与你 ...
- python全栈开发从入门到放弃之递归函数的调用
1.递归效率低,需要在进入下一次递归时保留当前的状态,见51cto博客 解决方法是尾递归,即在函数的最后一步(而非最后一行)调用自动但是python又没有尾递归,且对递归层级做了限制 必须有一个明确的 ...
- SQL Server语句创建数据库和表——并设置主外键关系
简单的创建数据库的 SQL 语句: use master go if exists(select * from sysdatabases where name='Test') begin select ...