• Ruby Gnome2 中文教程
  • README.md
  • 1. GTK2
    • 1.1. 介绍
    • 1.2. 开始
      • 1.2.1. Hello World
      • 1.2.2. 理解信号和回调机制
      • 1.2.3. 事件
      • 1.2.4. 深入理解 Hello World
    • 1.3. 继续
      • 1.3.1. 更多关于信号的处理
      • 1.3.2. 升级版的 Hello World
    • 1.4. 包装控件
      • 1.4.1. 理解包装的盒子
      • 1.4.2. 关于这个盒子
      • 1.4.3. 一个包装的实例
      • 1.4.4. 使用表格包装
      • 1.4.5. 表格式包装实例
    • 1.5. (3) 容器控件
      • 1.5.1. 垂直和水平的盒子
      • 1.5.2. 垂直和水平的面板
      • 1.5.3. 表格
      • 1.5.4. 固定的容器
      • 1.5.5. 扩展器
      • 1.5.6. 处理盒子
      • 1.5.7. 记事本
      • 1.5.8. 事件盒子
    • 1.6. (4) 基本控件
      • 1.6.1. 4.1 开关按钮
      • 1.6.2. 4.2 多选按钮
      • 1.6.3. 4.6 单选按钮
      • 1.6.4. 4.7 ** 不是按钮但是和按钮隐性相关的
      • 1.6.5. 4.8 ** Font 按钮(在选择器下面...)(!)
      • 1.6.6. 4.9 数字和文本数据输入
        • 1.6.6.1. 4.10 单行输入框
        • 1.6.6.2. 4.11 旋转按钮
        • 1.6.6.3. 4.12 垂直和水平方向放大
      • 1.6.7. 4.13 选择器接口和控件
        • 1.6.7.1. 4.15 文件选择按钮
        • 1.6.7.2. 4.16 颜色按钮
          • 1.6.7.2.1. 4.16.1 修改一个控件的前景色
        • 1.6.7.3. 4.17 Font 按钮(!) ⚠️
      • 1.6.8. 4.18 测试一下
    • 1.7. (5) 对话框
      • 1.7.1. 创建你的对话框
        • 1.7.1.1. 模态框和非模态框
        • 1.7.1.2. ** GTK::Image 控件
      • 1.7.2. 消息对话框
      • 1.7.3. 关于你的应用程序
        • 1.7.3.1. ** Pixbuf
        • 1.7.3.2. 帮助菜单选项
      • 1.7.4. 文件选择对话框的类型
        • 1.7.4.1. 保存文件
        • 1.7.4.2. 创建目录(!) ⚠️
        • 1.7.4.3. 选择多个文件
      • 1.7.5. 用字体和颜色选择对话框收集信息
        • 1.7.5.1. 颜色选择对话框
        • 1.7.5.2. 字体选择对话框
        • 1.7.5.3. 编程方式修改字体
      • 1.7.6. 使用 Gtk::Assistant 实现多页对话框
        • 1.7.6.1. 进度条
      • 1.7.7. 测试一下你看懂了没有
    • 1.8. (6) GLib 简短介绍
      • 1.8.1. 环境变量
      • 1.8.2. 定时器
      • 1.8.3. 文件操作
        • 1.8.3.1. 错误处理
      • 1.8.4. 主循环
      • 1.8.5. 输入输出通道
    • 1.9. (7) 文本视图控件
      • 1.9.1. 7.1 滚动窗口
      • 1.9.2. 7.2 文本视图
        • 1.9.2.1. 7.2.1 文本缓冲区
        • 1.9.2.2. 7.2.2 文本视图属性
        • 1.9.2.3. 7.2.3 Pango 标签阵列
      • 1.9.3. 7.3 文本迭代器和标记
        • 1.9.3.1. 7.3.1 编辑文本缓冲区(!,f)
        • 1.9.3.2. 7.3.2 检索文本迭代器和标记
        • 1.9.3.3. 7.3.3 修改文本缓冲区内容
        • 1.9.3.4. 7.3.4 剪切,复制和粘贴
        • 1.9.3.5. 7.3.5 在文本缓冲区搜索
        • 1.9.3.6. 7.3.6 文本缓冲区的滚动
      • 1.9.4. 7.4 文本标签
      • 1.9.5. 7.5 插入图片
      • 1.9.6. 7.6 插入子控件
      • 1.9.7. 7.7 GtkSourceView
      • 1.9.8. 7.8 测试一下你看懂了没有
    • 1.10. (8) 树形视图控件
      • 1.10.1. 8.1 树形视图部分
        • 1.10.1.1. 8.1.1 Gtk::TreeModel
        • 1.10.1.2. 8.1.2 Gtk::TreeViewColumn 和 Gtk::CellRenderer
        • 1.10.1.3. 8.1.3 Gtk::ListStore 的使用
        • 1.10.1.4. 8.1.4 渲染和列
          • 1.10.1.4.1. 8.1.4.1 不要混淆模型的列和视图的列
          • 1.10.1.4.2. 8.1.4.2 TreeViewColumn 和 CellRenderer
        • 1.10.1.5. 8.1.5 创建 Gtk::ListStore
        • 1.10.1.6. 8.1.6 树形视图的排列
      • 1.10.2. 8.2 使用 Gtk::TreeStore
        • 1.10.2.1. 8.2.1 用树形存储组织内容
          • 1.10.2.1.1. 8.2.1.1 构建一个多层树形存储
        • 1.10.2.2. 8.2.2 单元格数据函数
        • 1.10.2.3. 8.2.3 多层树形存储
          • 1.10.2.3.1. 8.2.3.1 加载多层树形存储
        • 1.10.2.4. 8.2.4 Multi-item Super Columns
      • 1.10.3. 8.3 行的引用
        • 1.10.3.1. 8.3.1 树形路径
        • 1.10.3.2. 8.3.2 树形迭代器
        • 1.10.3.3. 8.3.3 树形行引用
      • 1.10.4. 8.4 添加行和选择处理
        • 1.10.4.1. 8.4.1 单项选择
        • 1.10.4.2. 8.4.2 多项选择
        • 1.10.4.3. 8.4.3 添加新行
        • 1.10.4.4. 8.4.4 组合框
        • 1.10.4.5. 8.4.5 移除多行
      • 1.10.5. 8.5 可编辑文本渲染器
      • 1.10.6. 8.6 单元格数据函数
      • 1.10.7. 8.7 单元格渲染
        • 1.10.7.1. 8.7.1 开关按钮渲染
          • 1.10.7.1.1. 8.7.1.1 渲染开关按钮可能影响树形视图里面其它值
          • 1.10.7.1.2. 8.7.1.2 树形视图中行列之间的数据依赖
        • 1.10.7.2. 8.7.2 Pixbuf 渲染
        • 1.10.7.3. 8.7.3 旋转按钮渲染
        • 1.10.7.4. 8.7.4 组合框渲染
          • 1.10.7.4.1. 8.7.4.1 进度条渲染
        • 1.10.7.5. 8.7.5 键盘加速渲染 ⚠️
    • 1.11. (9) 菜单和工具栏
      • 1.11.1. 9.1 弹出菜单
        • 1.11.1.1. 9.1.1 创建弹出菜单(!) ⚠️
          • 1.11.1.1.1. 9.1.1.1 菜单项分割
          • 1.11.1.1.2. 9.1.1.2 弹出菜单回调
      • 1.11.2. 9.2 键盘快捷键
        • 1.11.2.1. 9.2.1 快捷键路径
      • 1.11.3. 9.3 状态栏
        • 1.11.3.1. 9.3.1 状态栏提示
        • 1.11.3.2. 9.3.2 状态栏控件
          • 1.11.3.2.1. 9.3.2.1 状态栏内容和消息
        • 1.11.3.3. 9.3.3 菜单项信息
      • 1.11.4. 9.4 菜单项
        • 1.11.4.1. 9.4.1 子菜单
          • 1.11.4.1.1. 9.4.1.1 构建菜单树机制
            • 1.11.4.1.1.1. 9.4.1.1.1 撤销菜单项(!) ⚠️
          • 1.11.4.1.2. 9.4.1.2 子菜单的信号处理和回调
            • 1.11.4.1.2.1. 9.4.1.2.1 基于菜单项的哈希表的菜单程序设计及回调
        • 1.11.4.2. 9.4.2 不同类型菜单项的区别
          • 1.11.4.2.1. 9.4.2.1 图片菜单项
          • 1.11.4.2.2. 9.4.2.2 多选菜单项
          • 1.11.4.2.3. 9.4.2.3 单选菜单项
      • 1.11.5. 9.5 菜单栏
        • 1.11.5.1. 9.5.1 给菜单项添加键盘快捷键
        • 1.11.5.2. 9.5.2 键盘快捷键和它们关联菜单和其它控件
          • 1.11.5.2.1. 9.5.2.1 使用菜单中的快捷键路径
      • 1.11.6. 9.6 工具栏
        • 1.11.6.1. 9.6.1 一些 'toolbar-item-menu.rb' 范例须知
          • 1.11.6.1.1. 9.6.1.1 工具栏样式
          • 1.11.6.1.2. 9.6.1.2 你工具栏上的图标大小
        • 1.11.6.2. 9.6.2 拖放工具栏
          • 1.11.6.2.1. 9.6.2.1 独立式工具栏实例
            • 1.11.6.2.1.1. 9.6.2.1.1 独立是工具栏的方向
          • 1.11.6.2.2. 9.6.2.2 在一个窗口里拖放工具栏
      • 1.11.7. 9.7 工具栏项
      • 1.11.8. 9.8 动态创建菜单
        • 1.11.8.1. 9.8.1 创建用户界面文件
        • 1.11.8.2. 9.8.2 加载用户界面文件
          • 1.11.8.2.1. 9.8.2.1 附件操作类型
          • 1.11.8.2.2. 9.8.2.2 占位
      • 1.11.9. 9.9 自定义 Stock Item(!) ⚠️
      • 1.11.10. 9.10 测试一下你的看懂了没有
    • 1.12. (10) 拖放
      • 1.12.1. 10.1 拖放介绍
        • 1.12.1.1. 10.1.1 识别拖放对象
        • 1.12.1.2. 10.1.2 拖放的原对象和目标对象
          • 1.12.1.2.1. 10.1.2.1 为什么拖放控件需要一个它们自己的 Gdk::Window
          • 1.12.1.2.2. 10.1.2.2 有三种不同的拖放源和目标构建场景
      • 1.12.2. 10.2 没有自己的 Gdk::Window 情况下设置拖放控件
        • 1.12.2.1. 10.2.1 把一个按钮拖到一个 Label 上
          • 1.12.2.1.1. 10.2.1.1 是时候使用面向对象范式了
            • 1.12.2.1.1.1. 10.2.1.1.1 拖放调试模块须知
        • 1.12.2.2. [(10.2.2) 9.6.2.2 在一个窗口内拖放工具栏]
        • 1.12.2.3. 10.2.2 在一个窗口内拖放工具栏(面向对象版本)
          • 1.12.2.3.1. 10.2.2.1 'dnd-toolbar-oo.rb' 编程实例须知
      • 1.12.3. 10.3 自带 Gdk::Window 的拖放控件
        • 1.12.3.1. 10.3.1 文本视图控件中的拖放
        • 1.12.3.2. 10.3.2 树形视图项的拖放
          • 1.12.3.2.1. 10.3.2.1 树形视图内建拖放机制
          • 1.12.3.2.2. 10.3.2.2 树形视图中自定义拖放
        • 1.12.3.3. 10.3.3 图标视图项的拖放
          • 1.12.3.3.1. 10.3.3.1 文本视图中自定义拖放
        • 1.12.3.4. 10.3.4 拖放到可绘画控件
          • 1.12.3.4.1. 10.3.4.1 Gtk::DrawingArea 上拖放
          • 1.12.3.4.2. 10.3.4.2 拖放和 Cairo
    • 1.13. (11) 其它 GTK+ 控件
      • 1.13.1. 绘画控件
      • 1.13.2. 日历
      • 1.13.3. 状态图标
    • 1.14. (12) 绘画区域和 Cairo
      • 1.14.1. 介绍
      • 1.14.2. 把绘画图写入到 Pixbuf 文件中
    • 1.15. (12.3) Ruby Cairo 教程(top page)
      • 1.15.1. 12.3.0 介绍 Ruby Cairo 教程
        • 1.15.1.1. 12.3.0.1 用 Gtk-Cairo 框架运行这个教程中的实例代码
          • 1.15.1.1.1. 12.3.0.1.1 Cairo 后端
            • 1.15.1.1.1.1. 12.3.0.1.1.1 编程须知
              • 1.15.1.1.1.1.1. 12.3.0.1.1.1.1 学生须知
          • 1.15.1.1.2. 12.3.0.1.2 运行任意 Cairo 代码的模版文件
            • 1.15.1.1.2.1. 12.3.0.1.2.1 一个运行 Cairo 代码的真实例子
          • 1.15.1.1.3. 12.3.0.2 在非 Gtk Ruby 环境运行 Cairo 代码
          • 1.15.1.1.4. 12.3.0.3 Hiki Gtk With Cairo Module Download File
        • 1.15.1.2. 12.3.1 Cairo 的绘画模型
          • 1.15.1.2.1. 12.3.1.1 名词
            • 1.15.1.2.1.1. 12.3.1.1.1 Destination
            • 1.15.1.2.1.2. 12.3.1.1.2 Source
            • 1.15.1.2.1.3. 12.3.1.1.3 Mask
            • 1.15.1.2.1.4. 12.3.1.1.4 Path
            • 1.15.1.2.1.5. 12.3.1.1.5 Context
          • 1.15.1.2.2. 12.3.1.2 动词
            • 1.15.1.2.2.1. 12.3.1.2.1 Stroke
              • 1.15.1.2.2.1.1. 12.3.1.2.1.A1 Scale
              • 1.15.1.2.2.1.2. 12.3.1.2.1.A2 默认放大的实例
              • 1.15.1.2.2.1.3. 12.3.1.2.1.A3 经验法则
            • 1.15.1.2.2.2. 12.3.1.2.2 Fill
            • 1.15.1.2.2.3. 12.3.1.2.3 显示文本 - Glyphs
            • 1.15.1.2.2.4. 12.3.1.2.4 Paint
              • 1.15.1.2.2.4.1. 12.3.1.2.4.A1 Ruby Cairo 库里涂料以及颜色透明度
            • 1.15.1.2.2.5. 12.3.1.2.5 Mask
              • 1.15.1.2.2.5.1. 12.3.1.2.5.A1 Ruby Cairo 库不支持渐变模式
        • 1.15.1.3. 12.3.2 用 Cairo 绘画
          • 1.15.1.3.1. 12.3.2.1 准备或者选择一个源
          • 1.15.1.3.2. 12.3.2.2 创建一个路径
        • 1.15.1.4. 12.3.3 理解文本
        • 1.15.1.5. 12.3.4 理解变换
        • 1.15.1.6. 12.3.5 下一步做什么?
        • 1.15.1.7. 12.3.6 技巧和窍门
          • 1.15.1.7.1. 12.3.6.1 行宽
          • 1.15.1.7.2. 12.3.6.2 文本对其
    • 1.16. (13) 动态的用户界面
      • 1.16.1. 创建用户界面的 Glade
        • 1.16.1.1. Glade 的窗口以及菜单
      • 1.16.2. 用 Glade 创建用户界面的实例
        • 1.16.2.1. 创建窗体
        • 1.16.2.2. 添加工具栏
        • 1.16.2.3. 添加文件查看器
        • 1.16.2.4. 做出一些改变
        • 1.16.2.5. 控件信号
        • 1.16.2.6. 创建菜单
      • 1.16.3. 使用 Libglade
      • 1.16.4. 测试一下你看懂了没有
        • 1.16.4.1. 动态菜单设计的问题
    • 1.17. (A) 附录
Powered by GitBook

Ruby Gnome2 中文教程

Ruby-GNOME2 项目地址: https://github.com/ruby-gnome2/ruby-gnome2

英文教程地址:http://ruby-gnome2.osdn.jp/hiki.cgi?tutorials

中文教程地址:http://zlx.gitbooks.io/ruby-gnome2-tutorial-cn/content/