私は今この壁に対してほぼ一日走っています。私はすべてを試したような気がします。まずはここで私が望むものと私が目にするものがあります。私が今持っているものKivyラベルの左揃えとサイジング
この:画像で
:
私が欲しいものはこれです 'CurrentHistory:\ nHeader:' 単一ラベルです。私はそれを左に整列させることができますが、私はそれが上下に大量のパディングを持って取得することはできません。私はラベルが四角形で、テキストのまわりに四角形がないのが好きです。私は約2日間Kivy'ingされているので、もし私が何か超基本的なものを逃した場合、私を許してください。私は完全に機能するデモで更新
EDIT
。奇妙なことは、.kv製のラベルは、私がやりたいことを正確に行いますが、Python経由で生成されたLabelはそうではありません。
SegmentLayoutが.kvファイルで定義されているのGridLayoutと同じです:(
全体的なレイアウトはこれです:私が見つけ.kv
#:kivy 1.8.0
<MainWidget>
BoxLayout
size: root.size
ScrollView
id: scrlv
size_hint: .75, 1
GridLayout
cols: 1
size_hint: 1, None
height: max(self.minimum_height, scrlv.height)
canvas:
Color:
rgba: 150/255, 150/255, 150/255, 1
Rectangle:
pos: self.pos
size: self.size
SegmentLayout
GridLayout
cols: 1
size_hint: 1,None
height: self.minimum_height
Label
text: '[b]CurrentHistory:[/b]\nHeader:'
size_hint: (None, None)
halign: 'left'
markup: True
size: self.texture_size
TextInput
size_hint: (1,None)
height: self.minimum_height
text: 'Enter Text Here'
BoxLayout
orientation: "vertical"
size_hint: .25, 1
canvas:
Color:
rgba: 240/255, 180/255, 80/255, 1
Rectangle:
pos: self.pos
size: self.size
Label
text: "Label 1"
Label
text: "Label 2"
Pythonのドライバのデモ
import kivy
kivy.require('1.8.0') # replace with your current kivy version !
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.factory import Factory
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
class SegmentLayout(GridLayout):
def __init__(self, **kwargs):
super(SegmentLayout, self).__init__(cols=1, size_hint=(1,None), **kwargs)
self.bind(minimum_height=self.setter('height'))
label_text = '[b]CurrentHistory:[/b]\nHeader:'
label = Label(text=label_text, halign='left', size_hint=(None,None), markup=True)
label.bind(size=label.setter('texture_size'))
self.add_widget(label)
text_input = TextInput(text='Enter Text Here', size_hint=(1,None))
text_input.bind(minimum_height=text_input.setter('height'))
self.add_widget(text_input)
class MainWidget(Widget):
pass
class MyApp(App):
def build(self):
return MainWidget()
Factory.register('SegmentLayout', cls=SegmentLayout)
if __name__ == '__main__':
MyApp().run()
私は完全に機能するデモを追加した、奇妙なことは、ということです単純な.kvファイルの中で私が望むものを作るとき、それは期待どおりに動作します。 .kvファイルは、私が起こると予想されることをします。 – Hangman4358