一、信号、事件

  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基础学习总结(二)的更多相关文章

  1. AspectJ基础学习之二搭建环境(转载)

    AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...

  2. 【笔记】MySQL的基础学习(二)

    [笔记]MySQL的基础学习(二) MySQL 老男孩  一 视图 视图其实就是给表起个别名 1.创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS ...

  3. opengl基础学习专题 (二) 点直线和多边形

    题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...

  4. JavaScript 基础学习(二)js 和 html 的结合方式

    第一种 使用一个标签 <script type="text/javascript"> js代码; </script> 第二种 使用 script 标签,引入 ...

  5. JavaScript 基础 学习 (二)

    JavaScript 基础 学习 节点属性 ​ 每一个节点都有自己的特点 ​ 这个节点属性就记录着属于自己节点的特点 1. nodeType(以一个数字来表示这个节点类型) ​ 语法:节点.nodeT ...

  6. Java基础学习笔记二十八 管家婆综合项目

    本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...

  7. Gtk基础学习总结(一)

    第一个GTK程序例子: #include <stdio.h> #include <gtk/gtk.h> int main(int argc, char *argv[]) { g ...

  8. pytorch基础学习(二)

    在神经网络训练时,还涉及到一些tricks,如网络权重的初始化方法,优化器种类(权重更新),图片预处理等,继续填坑. 1. 神经网络初始化(Network Initialization ) 1.1 初 ...

  9. JS基础学习(二)

    昨天把网站上的基础知识看完了,下面是剩下的部分 第六节 JS Window浏览器对象模型 JavaScript全局对象,函数,变量均自动成为window对象的成员. 1.Window对象 1.获取浏览 ...

随机推荐

  1. VMwareWorkstations中安装ubuntu,apt install报E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)

    ubuntu中apt安装软件python时报: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily un ...

  2. 内核通信之Netlink源码分析-用户内核通信原理2

    2017-07-05 上文以一个简单的案例描述了通过Netlink进行用户.内核通信的流程,本节针对流程中的各个要点进行深入分析 sock的创建 sock管理结构 sendmsg源码分析  sock的 ...

  3. 类似于xml的一种数据传输格式protobuf

    1.Protobuf 简介 Protocol Buffer是google 的一种数据交换的格式,已经在Github开源,目前最新版本是3.1.0.它独立于语言,独立于平台.google 提供了多种语言 ...

  4. docker安装入门

    docker安装入门 https://blog.csdn.net/earbao/article/details/49683175

  5. my first ai application

    正式下手之前,先跑个demo体验以下. 1.my first ai application https://sonnguyen.ws/first-ai-application/ https://git ...

  6. python学习笔记(六)time、datetime、hashlib模块

    一.hashlib模块 python中的hashlib模块用来进行hash或者md5加密,而且这种加密是不可逆的,所以这种算法又被称为摘要算法.在python3的版本里,代替了md5和sha模块,主要 ...

  7. robotFramework_ride_python2_Wxpython测试环境搭建

    (提示:我的安装版本是robotFramework3.0+ride1.5+python2.7+wxpython2.8,至于wxpython3.0下ride安装打不开的问题我还没找到原因,建议刚开始先不 ...

  8. [golang note] 匿名组合

    匿名组合 golang也提供了继承机制,但采用组合的文法,因此称为匿名组合.与其他语言不同, golang很清晰地展示出类的内存布局是怎样的. • 非指针方式组合 ▶  基本语法 // 基类 type ...

  9. Selenium Page Object(PO)设计模式

    Webdriver UI自动化测试火了好几年了,具体怎么设计自动化测试测试工程,组织测试用例完全凭借着自己的经验和习惯. 最近忽然听说了Page Object(简称PO)火了起来,也有面试的时候被问到 ...

  10. 145. Binary Tree Postorder Traversal(二叉树后序遍历)

    Given a binary tree, return the postorder traversal of its nodes' values. For example:Given binary t ...