問題描述
我正在嘗試構(gòu)建一個基本的 Kivy 應(yīng)用程序.添加基本??元素并運行應(yīng)用程序后,所有元素都擠在左下角.它在 android 和 Linux 上顯示如下.
I am trying to build a basic Kivy app. After adding the basic elements, and running the app, all of the elements are crammed into the bottom left corner. It shows up like this on android and Linux.
Main.py:
from kivy.app import App
from kivy.uix.widget import Widget
class SublimeLauncher(Widget):
pass
class SublimeLauncherApp(App):
def build(self):
return SublimeLauncher()
if __name__ == "__main__":
SublimeLauncherApp().run()
sublimelauncher.kv:
sublimelauncher.kv:
#:kivy 1.2.0
<SublimeLauncher>:
FloatLayout:
BoxLayout:
orientation: 'vertical'
spacing: 10
Label:
text: "Enter the path to the folder to open.
Press OK if you would like to open without a directory"
TextInput:
id: folderpath
Button:
text: 'OK'
我第一次嘗試只使用 BoxLayout,但在某處讀取的根小部件始終與應(yīng)用程序一樣大.如何聲明應(yīng)用程序的大小?還是布局?你會怎么做一些像對話框這樣的事情?
I first tried it with just the BoxLayout, but read somewhere the root widget is always as big as the app. How do I declare the size of the app? Or the layout? How would you go about doing something like a dialog box?
也許我遺漏了一些非常基本的東西,但我似乎無法弄清楚.
Maybe I am missing something very basic, but I can't seem to figure it out.
這就是我所看到的......
here is what I am seeing..
推薦答案
由于你的根小部件不是布局(你讓 SublimeLauncher
繼承 Widget
),它不會't 設(shè)置其子級大小/位置.所以你的 FloatLayout
有默認(rèn)值,因為你也沒有手動覆蓋它們.
As your root widget is not a layout (you made SublimeLauncher
inherit Widget
), it doesn't set its children size/positions. So your FloatLayout
have the defaults, since you don't override them manually either.
pos: 0, 0
size: 100, 100
這些默認(rèn)值當(dāng)然會限制孩子,因為 FloatLayout
會根據(jù)他們的 size_hint 屬性來限制他們的大小.
And these defaults of course constraints the child, since FloatLayout
by constraint their size based on their size_hint property.
正如 Nykakin 指出的那樣,您想給他們更多的空間.
You want to give them more space, as Nykakin pointed out.
此外,由于您的文本比標(biāo)簽大(您也沒有設(shè)置 halign 和 text_size),因此它的紋理以標(biāo)簽的中心為中心,因此它的某些部分超出了屏幕.你想看看 kivy/examples/widgets/textalign.py
Also, as your text is bigger than the Label (you didn't set halign and text_size either) its texture is centered on the center of the Label, and so some part of it is out of screen. You want to have a look at kivy/examples/widgets/textalign.py
這篇關(guān)于Kivy - 基礎(chǔ)應(yīng)用程序有奇怪的對齊方式的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!