mirror of
https://github.com/Afacanc38/gtk-examples-python.git
synced 2024-11-17 12:00:41 +03:00
79 lines
2.5 KiB
Python
79 lines
2.5 KiB
Python
|
selamun = "aleyküm"
|
||
|
|
||
|
import gi, os
|
||
|
gi.require_version("Gtk", "3.0")
|
||
|
gi.require_version("Handy", "1")
|
||
|
from gi.repository import Gtk, Handy
|
||
|
|
||
|
Handy.init()
|
||
|
|
||
|
class MyWindow(Handy.Window):
|
||
|
def __init__(self):
|
||
|
super().__init__(title="Hello World")
|
||
|
self.set_default_size(500, 300)
|
||
|
|
||
|
# WindowHandle
|
||
|
self.handle = Handy.WindowHandle()
|
||
|
self.add(self.handle)
|
||
|
|
||
|
# Box
|
||
|
self.winbox = Gtk.Box(spacing=6, orientation=Gtk.Orientation.VERTICAL)
|
||
|
self.handle.add(self.winbox)
|
||
|
|
||
|
# Headerbar
|
||
|
self.hb = Handy.HeaderBar()
|
||
|
self.hb.set_show_close_button(True)
|
||
|
self.hb.props.title = "Stack Example"
|
||
|
self.winbox.pack_start(self.hb, False, True, 0)
|
||
|
|
||
|
# Stack
|
||
|
self.stack = Gtk.Stack()
|
||
|
self.stack.set_transition_type(Gtk.StackTransitionType.SLIDE_LEFT_RIGHT)
|
||
|
self.winbox.pack_start(self.stack, True, True, 0)
|
||
|
|
||
|
# Labels
|
||
|
self.label = Gtk.Label(label="Page 1")
|
||
|
self.stack.add_titled(self.label, "page0", "Label")
|
||
|
|
||
|
self.label = Gtk.Label(label="Page 2")
|
||
|
self.stack.add_titled(self.label, "page1", "Label")
|
||
|
|
||
|
self.label = Gtk.Label(label="Page 3")
|
||
|
self.stack.add_titled(self.label, "page2", "Label")
|
||
|
|
||
|
self.label = Gtk.Label(label="Page 4")
|
||
|
self.stack.add_titled(self.label, "page3", "Label")
|
||
|
|
||
|
self.label = Gtk.Label(label="Page 5")
|
||
|
self.stack.add_titled(self.label, "page4", "Label")
|
||
|
|
||
|
# Headerbar button 1
|
||
|
self.button = Gtk.Button()
|
||
|
self.button = Gtk.Button.new_from_icon_name("pan-start-symbolic", Gtk.IconSize.MENU)
|
||
|
self.hb.pack_start(self.button)
|
||
|
self.button.connect('clicked', self.on_button1_clicked)
|
||
|
|
||
|
# Headerbar button 2
|
||
|
self.button2 = Gtk.Button()
|
||
|
self.button2 = Gtk.Button.new_from_icon_name("pan-end-symbolic", Gtk.IconSize.MENU)
|
||
|
self.hb.pack_start(self.button2)
|
||
|
self.button2.connect("clicked", self.on_button2_clicked)
|
||
|
|
||
|
def on_button1_clicked(self, widget):
|
||
|
pages = self.stack.get_children()
|
||
|
cur_page = self.stack.get_visible_child()
|
||
|
i = pages.index(cur_page)
|
||
|
if i == 0: return
|
||
|
self.stack.set_visible_child(pages[i-1])
|
||
|
|
||
|
def on_button2_clicked(self, widget):
|
||
|
pages = self.stack.get_children()
|
||
|
cur_page = self.stack.get_visible_child()
|
||
|
i = pages.index(cur_page)
|
||
|
if i == len(pages) - 1: return
|
||
|
self.stack.set_visible_child(pages[i+1])
|
||
|
|
||
|
win = MyWindow()
|
||
|
win.connect("destroy", Gtk.main_quit)
|
||
|
win.show_all()
|
||
|
Gtk.main()
|