我想要一个侧边栏来显示帐户详细信息,例如:用户名,个人资料等。所以我在我的kv文件中制定了一个规则,我怎么能得到这个以及我做了什么才能得到这个,这也是如下:提前谢谢而且总是欢迎这个程序提示。 这是我的main.py
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.animation import Animation
class MainScreen(FloatLayout):
def menu_action(self):
self.add_widget(SideBar())
class SideBar(FloatLayout):
def on_touch_down(self, touch):
if self.collide_point(*touch.pos):
print('inside side')
else:
print('outside side')
class testApp(App):
def build(self):
return MainScreen()
if __name__ == '__main__':
AccountMaintainerApp().run()
这是我的kv文件test.kv
<MainScreen>:
canvas.before:
Rectangle:
size: root.size
source: 'static/images/back.jpg'
ActionBar:
pos_hint: {'top':1}
background_color: 0, 0, 0, .1
ActionView:
use_separator: True
ActionPrevious:
app_icon: 'static/images/account.png'
title: 'Account Maintainer'
color: 0, 0, 0, 0
with_previous: False
ActionButton:
id: menu
icon: 'static/images/menu.png'
on_press: root.menu_action()
<SideBar>:
canvas.before:
Color:
rgba: 0, 0, 0, .6
Rectangle:
size: self.size
pos: self.pos
size_hint: (.8, 1)
pos_hint: {'right': 1}
点击菜单按钮侧边栏打开当我点击菜单按钮时打开一个新的侧栏 我想禁用它。我怎么能得到这个?告诉我,如果没有 理解//
答案 0 :(得分:1)
如果我理解正确,您只需要在第一次单击菜单按钮时打开侧边栏。有几种方法可以做到这一点。一个是跟踪边栏是否已经打开,并且不打开第二个边栏。这可以通过更改MainScreen
课程来完成,如下所示:
class MainScreen(FloatLayout):
def __init__(self):
super(MainScreen, self).__init__()
self.has_sidebar = False
def menu_action(self):
if not self.has_sidebar:
print('adding sidebar')
self.add_widget(SideBar())
self.has_sidebar = True
else:
print('not adding sidebar')
另一种方法是在单击按钮时禁用该按钮。在这种情况下,您的MainScreen
课程将如下所示:
class MainScreen(FloatLayout):
def __init__(self):
super(MainScreen, self).__init__()
def menu_action(self):
print('adding sidebar')
self.add_widget(SideBar())
self.ids['menu'].disabled = True