Kivy 错误 - 'NoneType' 对象没有属性 'transition' 帮助我

问题描述 投票:0回答:1
import kivy

kivy.require('2.1.0') # replace with your current kivy version !

from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.screenmanager import SlideTransition


fontName = 'NanumGaRamYeonGgoc.ttf'

class InputScreen(GridLayout, Screen):
    def __init__(self, **kwargs):
        super(InputScreen, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='로그라인: ', font_name=fontName, font_size=40))
        self.logline = TextInput(multiline=False)
        self.add_widget(self.logliine)
        self.add_widget(Label(text='주제: ', font_name=fontName, font_size=40))
        self.plot = TextInput(multiline=False)
        self.add_widget(self.plot)

        layout = BoxLayout(orientation = 'vertical')
                

        naving = BoxLayout(size_hint_y=0.2)

        created = Button(text='이야기 만들기', font_name=fontName, font_size=30)
                

        created.bind(on_release=self.switch_created)
                

        naving.add_widget(created)
        layout.add_widget(naving)

        self.add_widget(layout)

    def switch_created(self, *args):
        self.manager.transition = SlideTransition(direction="right")
        self.manager.current = self.manager.previous()


class MyApp(App):
    def build(self):
        return InputScreen()

if __name__ == '__main__':
    MyApp().run()

我正在尝试创建的是获取“logline”和“plot”输入,然后按下按钮使故事出现在下一页上。

首先,我想在收到“logline”和“plot”输入后执行下一个屏幕,但我一直收到这个错误

'NoneType' object has no attribute 'transition'.

你能解决这个问题吗?

提前感谢您解决问题。 我会听取你的建议。

我想解决这个错误。

python kivy kivy-language non-type
1个回答
0
投票

在应用程序的构建功能中,您需要创建一个

ScreenManager
并向该ScreenManager添加小部件或屏幕。

class MyApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(InputScreen(name='input'))
        return sm
© www.soinside.com 2019 - 2024. All rights reserved.