Попытка изменить размер ввода текста. (Kivy, QPython, Android). Но не уверен, как правильно написать код - PullRequest
0 голосов
/ 23 мая 2019

Я хочу изменить размер вводимого текста, так как он заполняет половину экрана.

Этот код заполняет половину экрана :

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 

class MyApp(App): 
   def build(self): 
     self.box = BoxLayout() 
     self.label = Label(text="Hi there, Welcome.") 
     self.txt = TextInput(text="Hello World")
     self.box.add_widget(self.label) 
     self.box.add_widget(self.txt) 
     return self.box 

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

Я погуглил некоторых с той же проблемой, и я увидел это: Python kivy - как уменьшить высоту TextInput попробовал один из ответа:

Попытка изменить его размер таким образом, но не работает (не совсем уверен, как это правильно). Панель запуска Kivy закроется сразу после нажатия:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 

class MyApp(App): 
   def build(self): 
     self.box = BoxLayout() 
     self.label = Label(text="Hi there, Welcome.") 
     self.txt = TextInput()
     TextInput:
         size_hint: (.2, None)
         height: 30 
         multiline: False 
         text: "hello world"
     self.box.add_widget(self.label) 
     self.box.add_widget(self.txt) 
     return self.box 

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

1 Ответ

0 голосов
/ 23 мая 2019

Использование кода Python

Ниже приведен язык kv, преобразованный в код Python.

 self.txt = TextInput(size_hint=(.2, None), height=30, multiline=False, text="hello world")

Использование Kivy Builder

Следующее решение иллюстрирует использование Kivy Builder для загрузкиязык kv.

Snippets - main

from kivy.lang import Builder


Builder.load_string("""
<TextInput>:
    size_hint: (.2, None)
    height: 30
    multiline: False
    text: "hello world"
""")

Пример

В следующем примере представлены оба решения, но одно из них закомментировано.

main.py

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.lang import Builder


Builder.load_string("""
<TextInput>:
    size_hint: (.2, None)
    height: 30
    multiline: False
    text: "hello world"
""")


class MyApp(App):
    def build(self):
        self.box = BoxLayout()
        self.label = Label(text="Hi there, Welcome.")
        # self.txt = TextInput(size_hint=(.2, None), height=30, multiline=False, text="hello world")
        self.txt = TextInput()
        self.box.add_widget(self.label)
        self.box.add_widget(self.txt)
        return self.box


if __name__ == "__main__":
    MyApp().run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...