AdwViewSwitcherBar (Python) показывает только страницу 1. Простой рабочий пример?Python

Программы на Python
Anonymous
AdwViewSwitcherBar (Python) показывает только страницу 1. Простой рабочий пример?

Сообщение Anonymous »

Я не получаю никаких ошибок.
Без переключателя видна только страница 1...
Проверил на двух разных машинах под управлением Fedora.
Уже проверил api.pygobject.gnome.org и спросил дурацкого ИИ.
Может ли кто-нибудь сделать это и указать причину?
Я запускаю этот пример:

Код: Выделить всё

import gi

gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")

from gi.repository import Adw, Gtk

class MainWindow(Adw.ApplicationWindow):
def __init__(self, app):
super().__init__(application=app)
self.set_title("ADW Window with ViewSwitcherBar")
self.set_default_size(600, 500)

# Create a box to hold content
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)

# Create header bar with title
header_bar = Adw.HeaderBar()
box.append(header_bar)

# Create view stack (for switching between views)
view_stack = Adw.ViewStack()

# Add pages to stack
view_stack.add_titled(self._create_page_content("Page 1"), "page1", "Page 1")
view_stack.add_titled(self._create_page_content("Page 2"), "page2", "Page 2")
view_stack.add_titled(self._create_page_content("Page 3"), "page3", "Page 3")
box.append(view_stack)

# Create ViewSwitcherBar
switcher_bar = Adw.ViewSwitcherBar()
switcher_bar.set_stack(view_stack)
box.append(switcher_bar)

self.set_content(box)

def _create_page_content(self, title):
"""Helper to create a page with content"""
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=10)
box.set_margin_top(20)
box.set_margin_bottom(20)
box.set_margin_start(20)
box.set_margin_end(20)

label = Gtk.Label(label=title)
button = Gtk.Button(label="Click Me")
button.connect("clicked", self.on_button_clicked)

box.append(label)
box.append(button)

return box

def on_button_clicked(self, button):
print("Button clicked!")

class MyApp(Adw.Application):
def __init__(self):
super().__init__(application_id="com.example.MyApp")

def do_activate(self):
window = MainWindow(self)
window.present()

if __name__ == "__main__":
app = MyApp()
app.run(None)

вот результат:
результат

Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-example

Вернуться в «Python»