एक सरल तरीका है अपने स्वयं के बटन उपवर्ग परिभाषित करने के लिए है:
class ScreenButton(Button):
screenmanager = ObjectProperty()
def on_press(self, *args):
super(ScreenButton, self).on_press(*args)
self.screenmanager.current = 'whatever'
जब बटन दबाने on_press प्रक्रिया स्वतः ही कहा जाता है, तो screenmanager के current
संपत्ति बदल जाएगा।
sm = ScreenManager()
sc1 = Screen(name='firstscreen')
sc1.add_widget(ScreenButton(screenmanager=sm))
sc2 = Screen(name='whatever')
sc2.add_widget(Label(text='another screen'))
sm.add_widget(sc1)
sm.add_widget(sc2)
बटन पर क्लिक करने के रूप में आवश्यक स्क्रीन स्विच करना चाहिए:
तो फिर तुम जैसे कोड कुछ हो सकता है।
एक और तरीका (जो संभवतया केवी भाषा वास्तव में करता है) मैन्युअल रूप से bind
विधि का उपयोग करना होगा।
def switching_function(*args):
some_screen_manager.current = 'whatever'
some_button.bind(on_press=switching_function)
इसका मतलब यह होगा कि जब भी switching_function
some_button
दबाया जाता है कहा जाता है। निश्चित रूप से फ़ंक्शन को परिभाषित करने के तरीके के बारे में यहां बहुत लचीलापन है, इसलिए (उदाहरण के लिए) आप स्क्रीनमैंजर को फ़ंक्शन के पहले तर्क के रूप में पास करने जैसे कुछ सामान्य कर सकते हैं।
मैंने इस कोड का परीक्षण नहीं किया और यह एक पूर्ण ऐप नहीं है, लेकिन उम्मीद है कि इसका अर्थ स्पष्ट है। किसी भी विधि को ठीक काम करना चाहिए, आप जिस तरह से सबसे समझदार लगता है चुन सकते हैं। मैं बाद में एक और पूरा उदाहरण बना सकता हूं।
अपने जवाब के लिए धन्यवाद। सबक्लास समाधान का उपयोग करने से मुझे वह करने में मदद मिली जो मैं करने की कोशिश कर रहा था। एक बार फिर धन्यवाद। – Derick