Gtk基础学习总结(二)
一、信号、事件
void g_signal_connect(instance,char* signalName,callback,gpointerobject);
//instance:gtk控件
int btnOnClick(GtkWidget *widget,int data);
例: g_signal_connect(window,"destroy",gtk_main_quit,NULL);
//添加Clicked事件
GtkButton *btn1=gtk_button_new();
gtk_button_set_label(btn1,"按钮");
gtk_container_add(window,btn1);
g_signal_connect(btn1,"clicked",btn1OnClicked,NULL);
gtk_widget_show(btn1);
二、Gtk控件
//复选框CheckButton
//GtkCheckButton *cb1=gtk_check_button_new_with_label("嘿嘿");
cbAgree=gtk_check_button_new();
gtk_button_set_label(cbAgree,"我同意以上协议.");
gtk_box_pack_start(box,cbAgree,FALSE,FALSE,0);
gtk_widget_show(cbAgree);
g_signal_connect(cbAgree,"clicked",cbAgreeOnClick,NULL);
//单选框RadioButton
GtkRadioButton *radio1=gtk_radio_button_new_with_label(NULL,"男");
GtkRadioButton *radio2=gtk_radio_button_new_with_label_from_widget(radio1,"女"); // 和radio1同一组
gtk_box_pack_start(box,radio1,FALSE,FALSE,0);
gtk_box_pack_start(box,radio2,FALSE,FALSE,0);
gtk_widget_show(radio1);
gtk_widget_show(radio2);
//文本框entry
entryName=gtk_entry_new();
gtk_entry_set_max_length(entryName,5); //设置输入的最大长度
gtk_entry_set_visibility(entryName,FALSE); //设置为密码框风格
gtk_box_pack_start(box,entryName,FALSE,FALSE,0);
gtk_widget_show(entryName);
//标签label
labelResult=gtk_label_new("");
gtk_box_pack_start(box,labelResult,FALSE,FALSE,0);
gtk_widget_show(labelResult);
//组合框ComboBoxText
cmbGril=gtk_combo_box_text_new();
gtk_box_pack_start(box,cmbGril,FALSE,FALSE,0);
gtk_combo_box_text_append(cmbGril,"wm","吴淼");
gtk_combo_box_text_append(cmbGril,"wd","吴东");
gtk_combo_box_text_append (cmbGril,"wxq","吴晓青");
gtk_combo_box_set_active_id(cmbGril,"wd");
//changed事件
g_signal_connect(cmbGril,"changed",cmbGrilOnChanged,NULL);
gtk_widget_show(cmbGril);
//GtkImage,支持JPG、GIF、PNG等,不支持BMP GtkImage
*img1=gtk_image_new();
//gtk_image_set_from_file(img1,"D:\\00_13.jpg");
gtk_image_set_from_stock(img1,GTK_STOCK_ADD,GTK_ICON_SIZE_DIALOG);
gtk_box_pack_start(box,img1,FALSE,FALSE,0); gtk_widget_show(img1);
//带图片按钮
GtkImage *img=gtk_image_new();
gtk_image_set_from_stock(img,GTK_STOCK_APPLY,GTK_ICON_SIZE_BUTTON);
gtk_widget_show(img);
GtkButton *btn=gtk_button_new_with_label("确定");
gtk_button_set_image(btn,img);
gtk_container_add(window,btn );
gtk_widget_show(btn);
附:以上内容为本人学习了杨中科老师的《C语言也能干大事(第三版)》的教学视频之后,对所学的内容进行的总结。
Gtk基础学习总结(二)的更多相关文章
- AspectJ基础学习之二搭建环境(转载)
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
- 【笔记】MySQL的基础学习(二)
[笔记]MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...
- opengl基础学习专题 (二) 点直线和多边形
题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...
- JavaScript 基础学习(二)js 和 html 的结合方式
第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...
- JavaScript 基础 学习 (二)
JavaScript 基础 学习 节点属性 每一个节点都有自己的特点 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) 语法:节点.nodeT ...
- Java基础学习笔记二十八 管家婆综合项目
本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...
- Gtk基础学习总结(一)
第一个GTK程序例子: #include <stdio.h> #include <gtk/gtk.h> int main(int argc, char *argv[]) { g ...
- pytorch基础学习(二)
在神经网络训练时,还涉及到一些tricks,如网络权重的初始化方法,优化器种类(权重更新),图片预处理等,继续填坑. 1. 神经网络初始化(Network Initialization ) 1.1 初 ...
- JS基础学习(二)
昨天把网站上的基础知识看完了,下面是剩下的部分 第六节 JS Window浏览器对象模型 JavaScript全局对象,函数,变量均自动成为window对象的成员. 1.Window对象 1.获取浏览 ...
随机推荐
- Commons Email使用
Apache Commons Email Apache的一个开源项目,是基于另一个开源项目Java Mail上进行封装的,使用起来更加简单方便: http://commons.apache.org/p ...
- 4.ubuntu实现linux与windows的互相复制与粘贴
为了能够在linux和windows之间直接进行互相复制粘贴,给出下面的解决办法. 系统环境: ubuntu12.04(linux), win7系统 以下指令都是在超级用户的执行权限下执行的. 要解决 ...
- 前端黑客之XSS、CSRF
XSS:跨站脚本,发生在目标网站中目标用户的浏览器层面上,当用户浏览器渲染整个HTML文档的过程中出现了不被预期的脚本指令并执行时,XSS就会发生. 绝大多数XSS攻击都会采用嵌入一段远程或者第三方域 ...
- webuploader 多图片上传
WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件. 具体接口参考 webuploader接口文档地址 一.图片上传功能 ...
- Linux系统——Rsync数据同步工具
Rsync的优点及缺点 优点:类似cp命令.scp命令,但rsync为增量复制工具 缺点:针对大文件,效率非常高(打包再比对),针对小文件,效率非常低. Rsync作用 (1)可使本地和远程两台主机之 ...
- java实现FTP下载文件
ftp上传下载文件,是遵照ftp协议上传下载文件的,本例仅以下载文件为例. 重要的方法解释: 1.FTP功能相关依赖路径:org.apache.commons.net.ftp.*: 2.ftp默认端口 ...
- PKU 1208 The Blocks Problem(模拟+list应用)
题目大意:原题链接 关键是正确理解题目意思 首先:介绍一下list容器的一些操作:参考链接 list<int> c1; c1.unique(); 去重. c1.r ...
- Python-argparse-命令行与参数解析
import argparse import numpy as np import cv2 import os import numpy.random as npr from dface.core.u ...
- 网页图片jpg,gif,png对比。
总结:照片类的jpg如:banner图,小图gif或png8 GIF格式特点: 透明性 Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明). 动画 G ...
- POJ - 2699 The Maximum Number of Strong Kings (最大流+枚举)
题意:有n(n<=10)个选手,两两之间打比赛,共有n*(n-1)/2场比赛,赢一场得1分.给出每个人最后的得分.求有多少个定义如下的strong king:赢了所有得分比自己高的人或本身就是分 ...