2017-11-11 118 views
0

我是使用Kivy的noob。如你所见,我用一个按钮创建了一个简单的窗口。但为什么按钮不会变成(200,200)?Python/Kivy - 按钮位置

def build(self): 
    layout = BoxLayout(orientation='vertical') 
    self.labela = Label(text=celotnobesedilo, font_size=14) 
    gumb = Button(text='SEND', font_size=12, size_hint=(None, None), size=(200, 50), pos=(200, 200)) 
    gumb.bind(on_press=self.posljipodatke) 
    layout.add_widget(gumb) 
    layout.add_widget(self.labela) 
    return layout 

出了什么问题?显示按钮,但始终在位置(0,0)。 Tnx。

回答

0

因为使用BoxLayout,boxlayout的子元素的位置取决于他的位置,所以可以改为使用floatlayout,但如果不想更改布局,则可以使用pos_hint属性:

def build(self): 
     layout = FloatLayout() 
     self.labela = Label(text='celotnobesedilo', font_size=14) 
     gumb = Button(text='SEND', font_size=12, size_hint=(None, None), size=(200, 50), pos=(200, 200)) 
     gumb.bind(on_press=self.posljipodatke) 
     layout.add_widget(gumb) 
     layout.add_widget(self.labela) 
     return layout 
+0

Tnx。我将BoxLayout更改为FloatLayout(当然也导入它),但是现在出现错误: “TypeError:object .__ init __()不带参数” 为什么? – JanezKranjski

+0

@JanezKranjski请从您的布局初始化中移除orientation = vertical,就像我在回答中编辑的那样 –

+0

您可以给出完整的错误 –

-1

BoxLayout将其子项放置在行/列中。如果你想设置一个孩子的特定位置,使用像FloatLayout这样的东西。