簡體   English   中英

GUI:如何在python中使用kivy使用GridLayout?

[英]GUI : How to use GridLayout using kivy in python?

我正在嘗試使用kivy和一些小部件在python中創建一個簡單的GUI。 但是,在放置這些小部件的確切位置時遇到了一些問題(我未成功使用BoxLayout)。 GUI的設計在該注釋的附圖中給出。 有人可以幫我用基維畫嗎? 提前致謝。

在此處輸入圖片說明

您需要嵌套一些布局。 有些將是具有垂直方向的BoxLayouts ,有些是具有水平方向的BoxLayouts 有時,當您要使用常規網格時會使用GridLayout 您可以將Widget用於空白區域。 您可以在size_hint_x size_hint_y設置要保持比例的size_hint_xsize_hint_y (或使用size_hint一次size_hint )。 如果要固定大小,請將其設置為“ None然后相應地設置width / height 這是您需要改進的一些示例(使用按鈕作為占位符):

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder


Builder.load_string("""
<MyWidget>:
    orientation: 'vertical'
    BoxLayout:
        size_hint_y: 0.1
        TextInput:
            size_hint_x: 0.25
        Button:
            size_hint_x: 0.15
        Button:
            size_hint_x: 0.15
        Button:
            size_hint_x: 0.15
        Button:
            size_hint_x: 0.1
        Button:
            size_hint_x: 0.1
        Button:
            size_hint_x: 0.1
    Widget:
        size_hint_y: None
        height: 10
    BoxLayout:
        size_hint_y: 0.4
        Widget:
            size_hint_x: None
            width: 10
        GridLayout:
            cols: 10
            size_hint_x: 0.8
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
            Button
        Widget:
            size_hint_x: None
            width: 10
    Widget:
        size_hint_y: 0.4
""")


class MyWidget(BoxLayout):
    pass


class MyApp(App):
    def build(self):
        return MyWidget()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM