I am using python-2.7
and kivy-1.9.0
.When i run test.py then shows Menu1
,Menu2
Menu.
When i click on Menu1
Then shows +Add Menu1
Text . When i click on +Add Menu1
then call function root.add_menu1()
. How to make it using ctrl+a
keyboard key event instead of mouse click ?
Same if i click on Menu2
then shows +Add Menu2
Text.After that i press ctrl+a
key then should be call root.add_menu2()
function .
test.py
import kivy
kivy.require('1.9.0')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import BooleanProperty, ListProperty, ObjectProperty,NumericProperty
from kivy.uix.dropdown import DropDown
from kivy.core.window import Window
Window.maximize()
class MENU1(BoxLayout):
def add_menu1(self):
pass
class MENU2(BoxLayout):
def add_menu2(self):
pass
class MainMenu(BoxLayout):
test1_or_test2 = ObjectProperty()
def display_menu1(self):
self.remove_widgets()
self.menu1 = MENU1()
self.test1_or_test2.add_widget(self.menu1)
def display_menu2(self):
self.remove_widgets()
self.menu2 = MENU2()
self.test1_or_test2.add_widget(self.menu2)
def remove_widgets(self):
self.test1_or_test2.clear_widgets()
class Test(App):
title = "test"
def build(self):
return MainMenu()
if __name__ == '__main__':
Test().run()
test.kv
<MENU1>:
BoxLayout:
orientation: "vertical"
Button:
size_hint: .06, .03
text: "+Add Menu1"
on_press: root.add_menu1()
GridLayout:
size_hint: 1, None
size_hint_y:None
height: 25
cols: 5
BoxLayout:
Label:
text:""
<MENU2>:
BoxLayout:
orientation: "vertical"
Button:
size_hint: .06, .03
text: "+Add Menu2"
on_press: root.add_menu2()
GridLayout:
size_hint: 1, None
size_hint_y:None
height: 25
cols: 5
BoxLayout:
Label:
text:""
<MenuButton@Button>:
text_size: self.size
valign: "middle"
padding_x: 5
size : (80,30)
size_hint : (None, None)
background_color: 90 , 90, 90, 90
background_normal: ''
color: 0, 0.517, 0.705, 1
border: (0, 10, 0, 0)
<MainMenu>:
test1_or_test2: test1_or_test2
BoxLayout:
orientation: 'vertical'
BoxLayout:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
size_hint_y: 1
MenuButton:
id: btn
text: 'Menu1'
size : (60,30)
on_release: root.display_menu1()
MenuButton:
id: btn
text: 'Menu2'
size : (60,30)
on_release: root.display_menu2()
BoxLayout:
canvas.before:
Rectangle:
pos: self.pos
size: self.size
Color:
rgb: (1,1,1)
Label:
size_hint_x: 45
BoxLayout:
id: test1_or_test2
size_hint_y: 10
Label:
size_hint_y: 1