'''
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
class MyGrid(GridLayout):
def __init__(self, **kwargs):# handle as many can com in **kwargs
super(MyGrid, self).__init__(**kwargs)
self.cols = 1
self.add_widget(Label(text="Super long textSuper long textSuper long textSuper long textSuper long textSuper long textSuper long textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper long text"))
class MyApp(App):
def build(self):
return MyGrid()
if __name__ == "__main__":
MyApp().run()
'''
上面是我的代碼,當我運行代碼時,文本不在視窗中:
所以如果文本穿過視窗幾何圖形,有什么方法可以將文本移動到下一行。
任何建議都會對您有所幫助,謝謝。
uj5u.com熱心網友回復:
您可以使用text_size屬性,如下所示:
self.add_widget(Label(text_size=(500, None), text="Super long textSuper ...
另一種方法是使用 kivy 語言設定系結,以text_size隨著視窗大小的變化而調整:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
kv = '''
<MyLabel>:
size_hint: 0.5, 0.5
text_size: self.size
'''
class MyLabel(Label):
pass
class MyGrid(GridLayout):
def __init__(self, **kwargs):# handle as many can com in **kwargs
super(MyGrid, self).__init__(**kwargs)
self.cols = 1
self.add_widget(MyLabel(text="Super long textSuper long textSuper long textSuper long textSuper long textSuper long textSuper long textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper textSuper long text"))
class MyApp(App):
def build(self):
Builder.load_string(kv)
return MyGrid()
if __name__ == "__main__":
MyApp().run()
此代碼設定text_size到始終遵循控制元件size的MyLabel類。Usingkv設定一個系結,以便text_size隨著小部件的size變化而變化。
uj5u.com熱心網友回復:
你不能在kivy中是不可能的。雖然它可能在 tkinter
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/407096.html
標籤:
