PyGobject(四十四)布局容器之Stack&StackSwitcher
来源:互联网 发布:mac桌面不显示文件 编辑:程序博客网 时间:2024/05/16 11:08
- GtkStackSwitcher
- 继承关系
- Methods
- Virtual Methods
- Properties
- Signals
- GtkStack
- 继承关系
- Methods
- Virtual Methods
- Properties
- Signals
- 例子
- 附录
- GtkStackTransitionTypeSLIDE_LEFT_RIGHT
Gtk.StackSwitcher
Gtk.Stack是一个一次只能显示一个子部件的容器,有点类似于Gtk.Notebook,不同的是Gtk.Notebook可以控制子部件的可见与否。Gtk.Stack不能直接控制,但是可以通过Gtk.StackSwitcher来实现
关于垂直方向的Stack参见PyGobject(三十)布局容器之StackSidebar
继承关系
Gtk.StackSwitcher是Gtk.Box的直接子类
Methods
Virtual Methods
Properties
Signals
Gtk.Stack
继承关系
Gtk.Stack是Gtk.Container 的直接子类
Methods
Virtual Methods
Properties
Signals
例子
代码:
#!/usr/bin/env python3# Created by xiaosanyu at 16/6/13# section 061TITLE = "Stack"DESCRIPTION = """The Gtk.Stack widget is a container which only shows one of its children at a time.In contrast to Gtk.Notebook, Gtk.Stack does not provide a means for users to change the visible child.Instead, the Gtk.StackSwitcher widget can be used with Gtk.Stack to provide this functionality."""import gigi.require_version('Gtk', '3.0')from gi.repository import Gtkclass StackWindow(Gtk.Window): def __init__(self): Gtk.Window.__init__(self, title="Stack Demo") self.set_border_width(10) vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6) self.add(vbox) stack = Gtk.Stack() stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT) stack.set_transition_duration(1000) checkbutton = Gtk.CheckButton("Click me!") stack.add_titled(checkbutton, "check", "Check Button") label = Gtk.Label() label.set_markup("<big>A fancy label</big>") stack.add_titled(label, "label", "A label") stack_switcher = Gtk.StackSwitcher() stack_switcher.set_stack(stack) vbox.pack_start(stack_switcher, True, True, 0) vbox.pack_start(stack, True, True, 0)def main(): win = StackWindow() win.connect("delete-event", Gtk.main_quit) win.show_all() Gtk.main()if __name__ == "__main__": main()
代码解析
vbox= Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=6)self.add(vbox)
先创建一个垂直布局的Box
stack = Gtk.Stack() stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT)stack.set_transition_duration(1000)
创建一个Gtk.Stack,设置动画类型为从左或从右滑入,动画持续时间1S
checkbutton = Gtk.CheckButton("Click me!")stack.add_titled(checkbutton, "check", "Check Button")
创建一个Gtk.CheckButton,添加到stack中,显示标题为”Check Button”,名称为”check”
label = Gtk.Label()label.set_markup("<big>A fancy label</big>")stack.add_titled(label, "label", "A label")
创建一个Gtk.Label,添加到stack中,显示标题为”A label”,名称为”label”
stack_switcher = Gtk.StackSwitcher()stack_switcher.set_stack(stack)
创建一个Gtk.StackSwitcher,设置stack
vbox.pack_start(stack_switcher, True, True, 0)vbox.pack_start(stack, True, True, 0)
将switcher和stack添加到box中
附录
Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
class Gtk.StackTransitionType
Bases: GObject.GEnum
NONE = 0
无动画
CROSSFADE = 1
淡入淡出
OVER_LEFT = 10
通过向左滑动覆盖旧页面。
New in version 3.12.
OVER_RIGHT = 11
通过向右滑动覆盖旧页面。
New in version 3.12.
UNDER_UP = 12
通过向上滑动揭开新的一页。
New in version 3.12.
UNDER_DOWN = 13
通过向下滑动揭开新的一页。
New in version 3.12.
UNDER_LEFT = 14
通过向左滑动揭开新的一页。
New in version 3.12.
UNDER_RIGHT = 15
通过向右滑动揭开新的一页。
New in version 3.12.
OVER_UP_DOWN = 16
向上滑动覆盖旧页面或向下滑动揭开新的一页。
New in version 3.12.
OVER_DOWN_UP = 17
向下滑动覆盖旧页面或向上滑动揭开新的一页。
New in version 3.14.
OVER_LEFT_RIGHT = 18
向左滑动覆盖旧页面或向右滑动揭开新的一页。
New in version 3.14.
OVER_RIGHT_LEFT = 19
向右滑动覆盖旧页面或向左滑动揭开新的一页。
New in version 3.14.
SLIDE_RIGHT = 2
从左往右滑入
SLIDE_LEFT = 3
从右往左滑入
SLIDE_UP = 4
从下往上滑入
SLIDE_DOWN = 5
从上往下滑入
SLIDE_LEFT_RIGHT = 6
根据孩子的顺序从左滑入或从右滑入
SLIDE_UP_DOWN = 7
根据孩子的顺序从上滑入或从下滑入
OVER_UP = 8
通过向上滑动覆盖旧页面。
New in version 3.12.
OVER_DOWN = 9
通过向下滑动覆盖旧页面。
New in version 3.12.
代码下载地址:http://download.csdn.net/detail/a87b01c14/9594728
- PyGobject(四十四)布局容器之Stack&StackSwitcher
- PyGobject(十八)布局容器之ActionBar
- PyGobject(十九)布局容器之Alignment
- PyGobject(三十)布局容器之StackSidebar
- PyGobject(三十一)布局容器之EventBox
- PyGobject(三十二)布局容器之Window
- PyGobject(三十三)布局容器之ApplicationWindow
- PyGobject(三十四)布局容器之Assistant
- PyGobject(三十五)布局容器之ShortcutsWindow
- PyGobject(三十六)布局容器之OffscreenWindow
- PyGobject(三十七)布局容器之Dialog
- PyGobject(三十八)布局容器之ScrolledWindow
- PyGobject(三十九)布局容器之PlacesSidebar
- PyGobject(四十)布局容器之Viewport
- PyGobject(四十一)布局容器之Box
- PyGobject(四十二)布局容器之ButtonBox
- PyGobject(四十五)布局容器之Grid
- PyGobject(四十六)布局容器之Fixed
- Spring Data Redis 使用
- MySQL按照汉字的拼音排序
- 前端工作面试问题(上)
- Hadoop2.x之HDFS HA Federation
- 轮播图的实现
- PyGobject(四十四)布局容器之Stack&StackSwitcher
- 好天气
- 2016夏季练习——dp
- 某天想做某事于是...
- FutureTask 源码解析
- Javascript数组中迭代的几种写法
- FutureTask 深度解析
- 浅谈库,进程,线程---C语言学习(5)
- Unix中常见命令介绍