首页 > 解决方案 > 减少 GridLayout 中列的宽度

问题描述

我有这个代码:

import kivy
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import Image
from kivy.uix.label import Label
from kivy.uix.button import Button

class TedeGrid(GridLayout):
    def __init__(self, **kwargs):
        super(TedeGrid, self).__init__(**kwargs)
        self.cols = 3
        self.img = Image(source='sriyantra.png')
        self.add_widget(self.img)
        self.add_widget(Label(text="HELLO"))

        self.inside = GridLayout()
        self.inside.cols = 1

        self.add_widget(self.inside)

        self.next_button = Button(text="Next")
        self.inside.add_widget(self.next_button)

        self.prev_button = Button(text="Prev")
        self.inside.add_widget(self.prev_button)

class Tedegraph(App):
    def build(self):
        return TedeGrid()

if __name__ == "__main__":
    Tedegraph().run()

我想减小第三列的宽度,例如为第一列宽度的 10%。

更好的是,如果没有按钮,但右侧将是一个小点击区域(对next事件做出反应),左侧将是一个小点击区域(对prev事件做出反应)

标签: kivy

解决方案


我会使用大网格布局,我会放置较小的网格布局并使用调整每个较小网格布局的大小size_hint=(width, height)

如果您需要代码示例,能否请您在代码中添加您使用的照片,以便我可以正确运行它?


推荐阅读