我正在尝试创建自定义TabbedPanel来控制其外观和其他功能。但是我似乎无法定位面板。在我的示例中,我将条带涂成绿色以说明此问题。我确实看过这个question,但似乎无法弄清楚。尝试将所有填充都设置为零,但没有成功。
面板稍微偏移,并且比条带略小(如绿色所示)。如何更改此设置并删除/控制填充。
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
Builder.load_string('''
<Screen>:
canvas.before:
Color:
rgba: (0.8, 0.5, 1, 1)
Rectangle:
size: self.size
pos: self.pos
background_normal: ''
orientation: 'vertical'
padding: 50
CustomPanel:
CustomPanelItem:
Label:
text: 'Hello there'
<CustomPanel@TabbedPanel+CustomStrip>:
do_default_tab: False
tab_width: self.width
padding: 0, 0, 0, 0
<CustomPanelHeader@TabbedPanelHeader>:
text: 'Long Text for a Tab'
padding: 0, 0
<CustomPanelItem@TabbedPanelItem+CustomPanelHeader>:
text: 'Hello World Hello World Hello World'
padding: 0, 0
<CustomStrip@TabbedPanelStrip>:
canvas:
Color:
rgba: (0, 1, 0, 1) # green
Rectangle:
size: self.size
pos: self.pos
''')
class Screen(BoxLayout):
pass
class TestApp(App):
def build(self):
return Screen()
if __name__ == '__main__':
TestApp().run()
答案 0 :(得分:1)
但是左侧似乎仍然有1像素...?
这是由于标签所使用的images实际上是一个按钮。
使用<TabbedPanelHeader>
和background_normal: ''
覆盖rgba颜色的background_color:
覆盖类规则
...我该如何处理下方的腿部空间?
我认为剥离/分离器可能是设计使然。
面板略微偏移,并且比条带略小 (如绿色所示)。我该如何改变和 删除/控制填充。
覆盖类规则padding
中的<StripLayout>
,并删除对padding
的所有引用。
...
<CustomPanelItem@TabbedPanelItem+CustomPanelHeader>:
text: 'Hello World Hello World Hello World'
<StripLayout>
padding: 0, 0, 0, 0
<TabbedPanelHeader>:
background_normal: ''
background_color: 0, 0, 1, 1 # blue
<CustomStrip@TabbedPanelStrip>:
canvas:
...