2013-10-25 50 views
1

我使用的是屏幕管理,想小部件添加到屏幕子類,而使用.kv文件。添加小部件的屏幕子類.py文件

class MainMenu(Screen): 

    def __init__(self, **kwargs): 
     gLayout = GridLayout() 
     gLayout.add_widget(Button(text = 'test')) 

class Sis(App): 
    def build(self): 
     root = ScreenManager() 
     root.add_widget(MainMenu(name = 'mainMenu')) 
     root.current = 'mainMenu' 

     return root 

Sis().run() 

當我嘗試運行上面的代碼時,我得到(pygame parachute) Segmentation Fault

如果我在.kv文件創建佈局,它工作正常。

我試過擺弄on_pre_enteron_enter,但我敢肯定我錯誤地使用了它們。

任何幫助表示讚賞。

回答

2

你忘了打電話的MainMenu類的父類的構造:

from kivy.app import App 
from kivy.uix.screenmanager import ScreenManager, Screen 
from kivy.uix.gridlayout import GridLayout 
from kivy.uix.button import Button 

class MainMenu(Screen): 
    def __init__(self, **kwargs): 
     super(MainMenu, self).__init__(**kwargs) 
     self.add_widget(Button(text = 'test'))  


class Sis(App): 
    def build(self): 
     root = ScreenManager() 
     root.add_widget(MainMenu(name = 'mainMenu')) 
     root.current = 'mainMenu' 
     return root 

Sis().run() 
+0

那排序它。我要讀'超級'。謝謝您的幫助。 – Derick

相關問題