【问题标题】:Kivy - Add an icon to tab buttonsKivy - 为标签按钮添加图标
【发布时间】:2016-03-21 22:17:20
【问题描述】:

我在 Kivy 中使用 TabbedPanel,效果很好,但我想稍微自定义一下选项卡按钮并在文本旁边添加一个图标。

现在我有这样的事情:

我想要这样的东西:

我的kv文件如下:

<KivyMasterPanel>
    do_default_tab: False
    id: MasterPanel
    tab_width: self.size[0]/len(self.tab_list)

    TabbedPanelItem:
        id: tab_A
        text: 'A'

    TabbedPanelItem:
        id: tab_B
        text: 'B'

    TabbedPanelItem:
        id: tab_C
        text: 'C'

有什么我可以用来代替 TabbedPannelItem.text 的东西来放置 BoxLayout 或里面的东西。如果可能,我希望能够使用 kv 文件创建我的选项卡,但如果不可能,没问题。

提前感谢大家的帮助。

【问题讨论】:

    标签: python user-interface tabs icons kivy


    【解决方案1】:

    创建一个自定义TabbedPanelItem,您将在其中添加带有Rectangle 的图像背景

    <TPI@TabbedPanelItem>:
        canvas:
            Rectangle:
                source: <your_img>
                size: self.size
                pos: self.pos
    

    并在您的KivyMasterPanel 中使用自定义的而不是TabbedPanelItem

    【讨论】:

    • 谢谢,就像一个魅力。使用 Rectangle 的 size 和 pos 属性,可以很容易地在 tab 中定位图标
    • 我实现了这个解决方案并且它有效。但是,我无法访问文本位置。调整窗口大小时,缩略图有时会位于文本顶部。您知道将布局放在选项卡内的方法吗?这样我就可以相对于文本定位拇指方式
    • @ClementPuech 我认为你的问题是你使用pos: self.pos[0] + &lt;number&gt;, ... 而不是灵活的东西。您可以通过相对定位Rectanglepos: self.pos[0] + 0.3*self.size[0], self.pos[1])或类似方式来修复它。手动定位文本可能使用behavior 和自定义TabbedPanelHeader,它使用TabbedPanelItem 作为它继承的类。如果您不想削弱它,第一个选项最适合您。 ^^
    • 我不明白如何使用那个自定义的。 更改后的外观如何?
    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多