Anderes Verhalten von Kivymds TopAppbar, je nachdem, ob von KV oder in Python gebaut wurdePython

Python-Programme
Anonymous
 Anderes Verhalten von Kivymds TopAppbar, je nachdem, ob von KV oder in Python gebaut wurde

Post by Anonymous »

Ich bin sehr neu in Kivy und bauen GUI -Apps im Allgemeinen und habe gerade angefangen, eine App mit Kivymd zu schreiben. Ich bin kürzlich auf ein Puzzle gestoßen, das ich nicht selbst lösen konnte. Nämlich - ich wollte einige der Layouting meiner Bewerbung von einer *.kv -Datei in eine Python -Datei verschieben, und danach sah die oberste Navigationsleiste der App seltsam aus - es gab keine Polsterung um den Titel und das Menüsymbol befand sich in einem falschen Ort. Die Bar wurde basierend auf meiner benutzerdefinierten Klasse gerendert, die von Kivymds Mdtopappbar erbt. Hier ist das minimale Beispiel:
stack.py:

Code: Select all

from kivy.lang import Builder
from kivymd.uix.gridlayout import MDGridLayout
from kivymd.uix.appbar.appbar import (MDTopAppBar, MDTopAppBarTitle,
MDTopAppBarTrailingButtonContainer, MDActionTopAppBarButton)

from kivymd.app import MDApp

class MyFirstTopAppBar(MDTopAppBar):
pass

class MySecondTopAppBar(MDTopAppBar):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.type = 'small'
trailing = MDTopAppBarTrailingButtonContainer()
trailing.add_widget(MDActionTopAppBarButton(icon="dots-vertical"))
title = MDTopAppBarTitle(text="Title")

self.add_widget(title)
self.add_widget(trailing)

class ExampleFirstApp(MDApp):
def build(self):
return Builder.load_file('stack.kv')

class ExampleSecondApp(MDApp):
def build(self):
gl = MDGridLayout(cols=1)
tab = MySecondTopAppBar()
gl.add_widget(tab)
return gl

#ExampleFirstApp().run()
#ExampleSecondApp().run()
stack.kv:

Code: Select all

MDGridLayout:
cols:1
MyFirstTopAppBar:

:
type: 'small'

MDTopAppBarTitle:
text: "Title"

MDTopAppBarTrailingButtonContainer:
MDActionTopAppBarButton:
icon: "dots-vertical"
Das "examplefirstapp" sieht so aus (richtig, richtig, wie ich es erwarten würde):
< /p>
wob Symbol):

Mein Problem ist - In vielen Tutorials habe ich gelesen, dass es keine Rolle spielt, ob man Widgets in Python oder über KV -Dateien manuell hinzufügt - und in diesem Fall scheint es eine Rolle zu sein. Kann mir bitte jemand erklären, was der Grund für den Unterschied ist und wie ich die Python -Version korrigieren kann, damit er wie der mit KV? Version 2.0.1.DEV0 unter Python 3.13

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post