锚点布置卡在左下角

2024-04-26 11:14:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经开始为kivy重新编写一个非常简单的Tkinter应用程序,我遇到了一个问题,我的锚点布局卡在了左下角,我无法修复它。这是我的代码:

from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.uix.button import Button 
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout



class MyApp(App):

    def build(self):
        controls = AnchorLayout(anchor_x='left', anchor_y='top')
        box = BoxLayout()


        upc_l = Label(text='UPC:', font_size=40, size_hint_y=None, 
                      size_hint_x=None, height=50, width=100,)
        entry = TextInput(font_size=40, size_hint_y=None, size_hint_x=None, 
                          height=50, width=350)
        search_b = Button(text='Search', font_size=40, size_hint_y=None,       
                          size_hint_x=None, height=50, width=200)


        controls.add_widget(box)
        box.add_widget(upc_l)
        box.add_widget(entry)
        box.add_widget(search_b)


        return controls




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

Tags: fromimportboxnoneaddappsizewidget
2条回答

好吧,我不知道我是应该回答我自己的问题还是只是评论一下(新来的),但这是我昨晚在经历了几个小时的挫折后才发现的。谢谢你的回答,邪恶。实际上我一直在看你的教程。在

from kivy.app import App 
from kivy.uix.label import Label 
from kivy.uix.textinput import TextInput 
from kivy.uix.button import Button 
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.anchorlayout import AnchorLayout



class MyApp(App):

    def build(self):
        controls = AnchorLayout(anchor_x='right', anchor_y='top', height=200)
        box = BoxLayout(size_hint_y=None, height=50)



        upc_l = Label(text='UPC:', font_size=40, size_hint_x=None, width=100,)
        entry = TextInput(font_size=40, size_hint_x=None, width=350)
        search_b = Button(text='Search', font_size=40, size_hint_x=None,
                          width=200, background_color=[0,1.7,0,1])


        controls.add_widget(box)
        box.add_widget(upc_l)
        box.add_widget(entry)
        box.add_widget(search_b)


        return controls




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

BoxLayout填充了窗口,因为它的大小提示是1, 1。它的子级都有手动设置的高度和宽度,所以它只是将它们一个接一个地放在屏幕的左下角,也就是屏幕的左下角,即使锚定布局工作正常。在

将BoxLayout设置为手动大小,以便更好地执行此操作。实际上,由于您手动设置其子级的大小,因此最好使用一个GridLayout,其大小设置为跟踪其minimum_widthminimum_height属性。在

相关问题 更多 >