Wie ich eine Kivy App codiert habe, habe ich eine kleine width
Eigenschaft in meine benutzerdefinierte Widget-Definition zum Testen: meine Funktion sollte eine neue Breite erstellt haben und diese sollte nirgendwo verwendet worden sein . Also habe ich vergessen, es im Laufe der Zeit zu entfernen. Aber jetzt, als ich den Code aufräumte und versuchte, ihn zu entfernen, brach die height
des Widgets. Die Höhe ist ebenfalls dynamisch, aber soweit ich sehen kann, hat das nichts mit der anfänglichen Breite des Widgets zu tun, da die Erzeugung der Höhe erst erfolgt, nachdem die neue Breite zugewiesen wurde. Ich bin irgendwie verwirrt, was das verursacht. Hinweis: Ich verwende eine geschützte Eigenschaft, um die Höhe zu berechnen, vielleicht ist sie verantwortlich? Ich habe eine schnelle, schmutzige App zusammengestellt, die Hässlichkeit entschuldigen, aber ich habe versucht, den Code so weit wie möglich zu verkürzen.Kivy seltsame Breite Eigenschaft Folgen
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
global msg_stack
msg_stack = []
Builder.load_string('''
<Custom>:
x: 5
width: 500
BoxLayout:
pos: root.pos
height: self.height
TextInput:
pos: root.pos
size: root.size
id: msg
readonly: True
text: str(msg)
''')
class Custom(Widget):
pass
class TestApp(App):
def build(self):
msg = "A bunch of random words: words, words, words, words, words"
inst = Custom()
inst.ids['msg'].text = msg
inst.width = 500
inst.height = (len(inst.ids['msg']._lines_labels) + 1) * (inst.ids['msg'].line_height + 2)
for i in inst.walk():
i.height = inst.height
i.width = inst.width
bl = BoxLayout(orientation="vertical")
bl.add_widget(inst)
return bl
TestApp().run()
Also, wenn diese Eigenschaft auf 500 festgelegt ist, ist die Höhe für die Menge der Zeilen gerade Fitting (Sie sehen, dass, wenn Sie mehr Text in die msg
Variable hinzufügen). Aber wenn ich es zu etwas anderem wie 50 ändere, steigt plötzlich die Höhe. Hier