我正在與kivy一個應用程序,我有一個問題,涉及GridLayout
。我有一個不同行的屏幕,我希望最後一行的按鈕始終具有相同的屏幕高度的11.1%。我試圖修改按鈕中的屬性高度,但無法正常工作。與size_hint_y
工作正常,但事實是,我想要height
,因爲屏幕將不總是相同數量的行(是響應和它取決於以前的屏幕選擇)。我在這裏附上我已經通過命令Window.height/9
計算的屬性高度完成的代碼:如何在Kivy Python中爲GridLayout的某些按鈕設置高度?
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.core.window import Window
class LoginScreen(GridLayout):
def __init__(self,**kwargs):
super(LoginScreen, self).__init__(**kwargs)
self.cols=2
self.add_widget(Label(text='Subject'))
self.add_widget(Label(text=''))
self.add_widget(Label(text='1'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='2'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='3'))
self.add_widget(TextInput(multiline=False))
self.add_widget(Label(text='4'))
self.add_widget(TextInput(multiline=False))
b1=Button(text='Exit',background_color=[0,1,0,1],height=int(Window.height)/9.0) #doesn't work properly
self.add_widget(b1)
b2=Button(text='Run',background_color=[0,1,0,1],height=int(Window.height)/9.0) #doesn't work properly
self.add_widget(b2)
b1.bind(on_press=exit)
class SimpleKivy(App):
def build(self):
return LoginScreen()
if __name__=='__main__':
SimpleKivy().run()
我知道這可能與kivy語言在一個更簡單的方法,但我的應用程序是更好地做這個做辦法。如果有人知道如何解決這個問題,我將非常感激。
事實是,我正在使用python語言而不是kivy語言,因爲我更喜歡開發該應用程序。網格佈局屏幕是使用之前選擇的以前屏幕構建的,保存在迭代的列表中以創建最終屏幕。我想要用kivy語言,但我不知道如何讀取例如7個元素的列表,並使用kivy語言創建7行,每行都有一個標籤和一個文本輸入。最後我決定用Python語言來完成它。你的答案對我有很大的幫助,我永遠不會認爲將'size_hint'設置爲'None'是解決方案。 –