我试图在kivy中实现一个自定义的可关闭的tab头。在
我做的是把类:TabbedPanelHeader对象有一个习惯类:CloseButton对象。这两个小部件都位于类别:BoxLayout,并排。在
但是,一旦我将此添加到类:TabbedPanel对象,什么也没出现。。 我不知道如何前进,将非常感谢所有的帮助!在
以下是代码的相关部分。在
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.graphics import *
from kivy.uix.tabbedpanel import TabbedPanelHeader
class CloseButton(ButtonBehavior, Image):
def __init__(self, **kwargs):
super(CloseButton, self).__init__(**kwargs)
self.source = 'atlas://data/images/defaulttheme/close'
self.size_hint_x = .2
def on_press(self):
self.source = 'atlas://data/images/defaulttheme/checkbox_radio_off'
def on_release(self):
self.source = 'atlas://data/images/defaulttheme/checkbox_radio_off'
## do the actual closing of the tab
class ClosableTabHeader(BoxLayout):
def __init__(self, **kwargs):
super(ClosableTabHeader, self).__init__(**kwargs)
self.size = (100, 30)
self.size_hint = (None, None)
self.canvas.before.add(Color(.25, .25, .25))
self.canvas.before.add(Rectangle(size=(105, 30)))
self.add_widget(TabbedPanelHeader(background_color=(.65, .65, .65, 0), text='testing'))
self.add_widget(CloseButton())
if __name__ == '__main__':
from kivy.app import App
class TestApp(App):
def build(self):
return ClosableTabHeader()
TestApp().run()
下面是一些代码,它们接近于实现您要实现的目标
它基于https://github.com/kivy/kivy/blob/master/examples/widgets/tabbed_panel_showcase.py
相关问题 更多 >
编程相关推荐