- PyGTK 教程
- PyGTK - 首页
- PyGTK - 简介
- PyGTK - 环境
- PyGTK - Hello World
- PyGTK - 重要类
- PyGTK - 窗口类
- PyGTK - 按钮类
- PyGTK - 标签类
- PyGTK - 输入框类
- PyGTK - 信号处理
- PyGTK - 事件处理
- PyGTK - 容器
- PyGTK - 箱式容器类
- PyGTK - 按钮箱类
- PyGTK - 对齐类
- PyGTK - 事件框类
- PyGTK - 布局类
- PyGTK - 组合框类
- PyGTK - 切换按钮类
- PyGTK - 复选框类
- PyGTK - 单选按钮类
- PyGTK - 菜单栏、菜单和菜单项
- PyGTK - 工具栏类
- PyGTK - 调整类
- PyGTK - 范围类
- PyGTK - 刻度类
- PyGTK - 滚动条类
- PyGTK - 对话框类
- PyGTK - 消息对话框类
- PyGTK - 关于对话框类
- PyGTK - 字体选择对话框
- PyGTK - 颜色选择对话框
- PyGTK - 文件选择对话框
- PyGTK - 笔记本类
- PyGTK - 框架类
- PyGTK - 带长宽比的框架类
- PyGTK - 树形视图类
- PyGTK - 分割窗格类
- PyGTK - 状态栏类
- PyGTK - 进度条类
- PyGTK - 视口类
- PyGTK - 滚动窗口类
- PyGTK - 箭头类
- PyGTK - 图片类
- PyGTK - 绘图区类
- PyGTK - 旋转按钮类
- PyGTK - 日历类
- PyGTK - 剪贴板类
- PyGTK - 标尺类
- PyGTK - 超时
- PyGTK - 拖放
- PyGTK 有用资源
- PyGTK - 快速指南
- PyGTK - 有用资源
- PyGTK - 讨论
PyGTK - 笔记本类
Notebook 小部件是一个带选项卡的容器。此容器中的每个选项卡都包含一个不同的页面,并且这些页面以重叠的方式显示。通过单击选项卡的标签,可以使任何所需的页面可见。可以配置标签以在顶部、底部、左侧或右侧显示。每个页面下放置了一个包含其他小部件的容器小部件或单个小部件。
如果要显示的数据在一个视图中太大,则将其分组到不同的页面中,每个页面都放置在 Notebook 小部件的一个选项卡下。这种类型的控件非常广泛地使用。例如,Internet 浏览器使用这种选项卡式显示在不同的选项卡中呈现不同的页面。
以下是 gtk.Notebook 类的构造函数:
gtk.Notebook()
以下是 gtk.Notebook 类中常用的方法:
append_page(child, label) − 将一个页面附加到笔记本,该页面包含一个小部件,由 tab_label 指定为选项卡上的标签。如果 tab_label 可以为 None 以使用默认标签。
insert_page(child, label, position) − 在由 position 指定的位置将一个页面插入到笔记本中。
remove_page(index) − 删除指定索引处的页面。
get_current_page() − 返回当前页面的页面索引。
set_current_page(index) − 切换到由索引指定的页面编号。
set_show_tabs() − 如果为假,则选项卡将不可见。默认情况下为真。
set_tab_pos(pos) − 设置在笔记本中绘制用于切换页面的选项卡的边缘。预定义的常量为:
gtk.POS_LEFT
gtk.POS_RIGHT
gtk.POS_TOP
gtk.POS_BOTTOM
set_tab_label_text(child, text) − 使用指定的文本创建一个新标签,并将其设置为包含 child 的页面的选项卡标签。
gtk.Notebook 小部件发出以下信号:
| change-current-page | 发出页面向前或页面向后请求时发出此信号 |
| focus-tab | 通过制表符更改焦点时发出此信号。 |
| page-added | 向笔记本添加页面时发出此信号。 |
| page-removed | 从笔记本中删除页面后发出此信号。 |
| select-page | 选择新的子页面时发出此信号。 |
| switch-page | 笔记本页面更改时发出此信号。 |
示例
在以下示例中,一个带有三个页面的 gtk.Notebook 放置在一个顶级 gtk.Window 中。第一个页面包含一个 VBox,其中包含一个标签和一个输入字段。第二个页面标有“资格”,它有一个 HButtonBox,其中添加了三个互斥的 RadioButton 小部件。第三个页面有一个 TextView 对象。页面标签显示在顶部。
观察代码:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Notebook Demo")
self.set_default_size(250, 200)
nb = gtk.Notebook()
nb.set_tab_pos(gtk.POS_TOP)
vbox = gtk.VBox(False, 5)
vb = gtk.VBox()
hbox = gtk.HBox(True, 3)
valign = gtk.Alignment(0.5,0.25, 0, 0)
lbl = gtk.Label("Name of student")
vb.pack_start(lbl, True, True, 10)
text = gtk.Entry()
vb.pack_start(text, True, True, 10)
valign.add(vb)
vbox.pack_start(valign)
nb.append_page(vbox)
nb.set_tab_label_text(vbox, "Name")
hb = gtk.HButtonBox()
btn1 = gtk.RadioButton(None,"Degree")
hb.add(btn1)
btn2 = gtk.RadioButton(btn1,"P.G.")
hb.add(btn2)
btn3 = gtk.RadioButton(btn1,"Doctorate")
hb.add(btn3)
nb.append_page(hb)
nb.set_tab_label_text(hb, "Qualification")
tv = gtk.TextView()
nb.append_page(tv)
nb.set_tab_label_text(tv, "about")
self.add(nb)
self.connect("destroy", gtk.main_quit)
self.show_all()
if __name__ == '__main__':
PyApp()
gtk.main()
执行后,上述代码将显示一个带有三个页面的 Notebook: