【发布时间】:2018-02-10 05:52:50
【问题描述】:
Kivy 似乎想让所有标签的大小相同。 如果我想让一个标签比其他标签宽怎么办?调整 TabbedPanelItem 的 tab_width 似乎没有效果,因此较长的文本会被截断。
示例从 Kivy TabbedPanel docs 稍作修改,我将第一个选项卡的标题更改为“选项卡的长文本”:
from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.lang import Builder
Builder.load_string("""
<Test>:
#size_hint: .5, .5
pos_hint: {'center_x': .5, 'center_y': .5}
do_default_tab: False
TabbedPanelItem:
text: 'Long Text for a Tab'
tab_width: self.texture_size[0]
Label:
text: 'First tab content area'
TabbedPanelItem:
text: 'tab2'
BoxLayout:
Label:
text: 'Second tab content area'
Button:
text: 'Button that does nothing'
TabbedPanelItem:
text: 'tab3'
RstDocument:
text:
'\\n'.join(("Hello world", "-----------",
"You are in the third tab."))
""")
class Test(TabbedPanel):
pass
class TabbedPanelApp(App):
def build(self):
return Test()
if __name__ == '__main__':
TabbedPanelApp().run()
...所以“长文本”被切掉了,因为所有 3 个选项卡的宽度都相同。即使将第一个选项卡的 tab_width 设置为常量(例如 300)也会被忽略。
似乎您可以向 TabbedPanel 提供 tab_width 并且它使所有选项卡都相同,但是如何使各个选项卡 (TabbedPanelItems) 具有不同(甚至是动态)宽度,即,使某些选项卡比其他选项卡更宽?
【问题讨论】:
标签: python tabs kivy kivy-language