Python – GTK+ 3 中的 Stack 和 StackSwitcher
Gtk.Stack
是一个容器,它允许一次看到它的一个孩子。 Gtk.Stack 不为用户提供任何直接访问来更改可见子项。相反, Gtk.StackSwitcher
小部件可以与Gtk.Stack
一起使用来获得此功能。
在Gtk.Stack
中,页面之间的转换可以通过幻灯片或淡入淡出来完成。这可以通过Gtk.Stack.set_transition_type()
来控制。
Gtk.StackSwitcher
小部件充当Gtk.Stack
的控制器;它显示了一排按钮,用于在相关堆栈小部件的各个页面之间切换。按钮的内容来自Gtk.Stack
的子属性。
请按照以下步骤操作:
- 导入 GTK+ 3 模块。
- 创建主窗口。
- 实现堆栈。
- 实现按钮。
- 实施标签。
- 实现 StackSwitcher。
例子 :
import gi
# Since a system can have multiple versions
# of GTK + installed, we want to make
# sure that we are importing GTK + 3.
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class StackWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title ="Geeks for Geeks")
self.set_border_width(10)
# Creating a box vertically oriented with a space of 100 pixel.
vbox = Gtk.Box(orientation = Gtk.Orientation.VERTICAL, spacing = 100)
self.add(vbox)
# Creating stack, transition type and transition duration.
stack = Gtk.Stack()
stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT)
stack.set_transition_duration(1000)
# Creating the check button.
checkbutton = Gtk.CheckButton("Yes")
stack.add_titled(checkbutton, "check", "Check Button")
# Creating label .
label = Gtk.Label()
label.set_markup("Hello World")
stack.add_titled(label, "label", "Label")
# Implementation of stack switcher.
stack_switcher = Gtk.StackSwitcher()
stack_switcher.set_stack(stack)
vbox.pack_start(stack_switcher, True, True, 0)
vbox.pack_start(stack, True, True, 0)
win = StackWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
输出 :
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。