Python 基维:如何更改选项卡面板的边框?

Python 基维:如何更改选项卡面板的边框?,python,kivy,border,kivy-language,tabbed,Python,Kivy,Border,Kivy Language,Tabbed,我现在挣扎了几个小时,只是为了能够定制我的Kivy标签面板的风格。这是我的密码: :导入Utils kivy.Utils 盒子布局: 间距:0 填充:0 画布: 颜色: rgb:Utils.get_color_from_hex(“#1b262d”)[:3] 矩形: 大小:self.size 选项卡面板: do_default_选项卡:False 制表符宽度:自身大小[0]/2 画布: 颜色: rgb:Utils.get_color_from_hex(“#00ff00”)[:3] 矩形: 大小:s

我现在挣扎了几个小时,只是为了能够定制我的Kivy标签面板的风格。这是我的密码:

:导入Utils kivy.Utils
盒子布局:
间距:0
填充:0
画布:
颜色:
rgb:Utils.get_color_from_hex(“#1b262d”)[:3]
矩形:
大小:self.size
选项卡面板:
do_default_选项卡:False
制表符宽度:自身大小[0]/2
画布:
颜色:
rgb:Utils.get_color_from_hex(“#00ff00”)[:3]
矩形:
大小:self.size
选项卡式面板项目:
背景颜色:Utils.从十六进制(“1b262d”)获取颜色
案文:“过去”
背景“向下”:
背景_正常:“
盒子布局:
方向:“垂直”
画布:
颜色:
rgb:Utils.get_color_from_hex(“#1b262d”)[:3]
矩形:
大小:self.size
pos:self.pos
盒子布局:
填充:[10,12,10,12]
间距:5
尺寸:0.1
文本输入:
背景颜色:Utils.从十六进制(“303E46”)获取颜色
前景色:[1,1,1,1]
大小提示:0.2
填充:[10,(自高度-自线高度)/2]
案文:“日期”
文本输入:
尺寸提示:0.15
填充:[10,(自高度-自线高度)/2]
文本:“测试”
文本输入:
大小提示:0.2
填充:[10,(自高度-自线高度)/2]
文本:“猫”
文本输入:
尺寸提示:0.15
填充:[10,(自高度-自线高度)/2]
文本:“排序依据”
文本输入:
尺寸提示:0.15
填充:[10,(自高度-自线高度)/2]
文本:“仅显示”
文本输入:
尺寸提示:0.15
填充:[10,(自高度-自线高度)/2]
文本:“搜索”
盒子布局:
尺寸:0.8
间距:10
填充:10
方向:“水平”
画布:
颜色:
rgb:Utils.get_color_from_hex(“#303E46”)[:3]
矩形:
大小:self.size
pos:self.pos
按钮:
大小提示:0.7
文本:“测试”
按钮:
大小提示:0.3
正文:“测试”
选项卡式面板项目:
背景颜色:Utils.从十六进制(“303E46”)获取颜色
文本:“即将到来”
背景“向下”:
背景_正常:“
以下是生成的窗口:

我实际上用绿色突出显示了我要删除的部分。我不希望图片中的绿色部分,也就是说,我希望我的标签在我的内容旁边,没有这个奇怪的边框

显然,如果我不强制画布为绿色,我会看到如下内容:

因此,我发现我的TabbedPanelItem和我的内容之间存在差距,我不知道如何删除它。我试图强制边框0去除边框0,更改小部件的高度,强制背景图像,等等,但我无法实现我想要的原因

Kivy的专家能帮我吗


提前谢谢你

我怀疑这更棘手

按钮存储在
选项卡面板
选项卡布局
属性中。它是一个
GridLayout
子类,您可以更改它的
padding
属性。下面是一个例子:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.lang import Builder

Builder.load_string('''
<StripLayoust>:
    canvas:
        Color:
            rgba: (0, 1, 0, 1) # green
        Rectangle:
            size: self.size
            pos: self.pos

<MainClass>:
    TabbedPanel:
        id: panel
        do_default_tab: False
        TabbedPanelItem:
            text: "1"
            Widget:
                canvas:
                    Color:
                        rgb: 0.1, 0.3, .02
                    Rectangle:
                        size: self.size
                        pos: self.pos
        TabbedPanelItem:
            text: "2"
            Widget:
                canvas:
                    Color:
                        rgb: 0.7, 0.6, .02
                    Rectangle:
                        size: self.size
                        pos: self.pos
''')

class MainClass(FloatLayout):
    def __init__(self, *args):
        super(MainClass, self).__init__(*args)
        self.ids["panel"]._tab_layout.padding = '2dp', '2dp', '2dp', '-2dp'

class TestApp(App):
    def build(self):
        return MainClass()

if __name__ == '__main__':
    TestApp().run()
添加
dp(2)
在那里是硬编码的,所以我需要使用负值来抵消它

我在这里使用下划线属性,它不是已建立的公共API的一部分,因此这种行为将来可能会改变

            tab_layout.height = (tab_height + tab_layout.padding[1] +
tab_layout.padding[3] + dp(2))