提问者:小点点

无法在MDGridLayout中添加kivymd的MDTextField


我是kivy框架的新手,但是我正在尝试制作一个简单的登录屏幕,其中将有一个文本字段和一个按钮

我的Python代码是:

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen,\
                                    ScreenManager

from kivy.lang import Builder

class Project (MDApp):
    def build (self):
        return Builder.load_file('main.kv')
    
Project().run()

main.kv文件是:

Screen:
    MDBoxLayout:
        orientation:'vertical'
        md_bg_color:1,0,0,1
        MDToolbar:
        MDGridLayout:
            cols:1
            adaptive_height: True
            MDLabel:
                text:'Manic'
                halign:'center'
            MDTextField:

我得到以下错误:

[INFO][Logger]记录登录/storage/simulated/0/@tsmile/projects/pro_two/。kivy/logs/kivy_21-03-19_38。txt
[INFO][Kivy]v1。11.1安装在“/data/user/0/ru.iiec.pydroid3/files/aarch64 linux-android/lib/python3.8/site-packages/Kivy/init.py”上的[INFO][Kivy]。8.3(默认值,2020年5月27日02:08:17)[GCC 9.3.0]
[INFO][Python]解释器位于“/data/user/0/ru.iiec.pydroid3/files/aarch64 linux android/bin/python3”
[INFO][Logger]清除日志已激发。分析
[INFO][Logger]清除15个日志文件
[INFO][Logger]清除完成
[INFO][KivyMD]v0。104.1
[INFO][Factory]加载184个符号
[INFO][Image]提供程序:img_tex、img_dds、img_sdl2、img_pil、img_gif(img_ffpyplayer忽略)
[INFO][Window Provider:sdl2
[INFO][GL GL]使用的“OpenGL ES 2”图形系统
[INFO][GL GL GL后端使用的
[INFO][GL GL GL

回溯(最近一次调用):
项目()中第36行的文件“/storage/emulated/0/@tsmile/projects/pro_two/main.py”。运行()

file"/data/user/0/ru.iiec.pydroid3/file/aarch 64-linux-android/lib/python3.8/site-包/kivy/app.py",第855行,在run
runTouchApp()中

文件“/data/user/0/ru.iiec.pydroid3/files/aarch64 linux-android/lib/python3.8/site-packages/kivy/base.py”,第504行,在runTouchApp
EventLoop中。窗mainloop()

文件“/data/user/0/ru.iiec.pydroid3/files/aarch64 linux android/lib/python3.8/site packages/kivy/core/window/window_sdl2.py”,第747行,在mainloop
self中_mainloop()

文件“/data/user/0/ru.iiec.pydroid3/files/aarch64 linux android/lib/python3.8/site packages/kivy/core/window/window\u sdl2.py”,第479行,在_mainloop
EventLoop中。空闲的

File"/data/user/0/ru.iiec.pydroid3/file/aarch 64-linux-android/lib/python3.8/site-包/kivy/base.py",第339行,在空闲
Clock.tick()File"/data/user/0/ru.iiec.pydroid3/file/aarch 64-linux-android/lib/python3.8/site-包/kivy/clock.py",第591行,打勾。_process_events()文件"kivy/_clock.pyx",第384行,kivy。_clock。_process_events文件"kivy/_clock.pyx",第414行,在kivy._clock。_process_events文件"kivy/_clock.pyx",第412行,kivy。_clock。_process_events文件"kivy/_clock.pyx",第154行,kivy。_clock。ClockEvent.tick文件"kivy/_clock.pyx",第86行,kivy._clock。ClockEvent.get_callbackFile"/data/user/0/ru.iiec.pydroid3/file/aarch 64-linux-android/lib/python3.8/site-包/kivy/weakmethod.py",第56行,在is_dead返回self.proxy是没有和没有bool(dir(self.proxy))

ReferenceError:弱引用对象不再存在

我得到的参考错误错误,它是说

弱引用对象不存在

有人能建议我如何将MDTextField添加到MDGridLayout中吗?

请告诉我为什么会发生这样的错误。


共1个答案

匿名用户

为了考虑到你的愿望,我稍微修改了一下你的布局。. py保持不变,更新的. kv在这里:

Screen:
MDBoxLayout:
    orientation:'vertical'
    md_bg_color:1,0,0,1
    MDToolbar:
        pos_hint_y: 0
    GridLayout:
        cols:1
        adaptive_height: True
        MDLabel:
            text:'Manic'
            halign:'center'
        BoxLayout:
            cols: 2
            rows: 1

            MDLabel:
                halign:'center'
                size_hint_y: 0.4
                size_hint_x: 0.3

            MDTextFieldRect:
                size_hint_y: 0.4
            MDFlatButton:
                text: "Test"
                md_bg_color: 1,1,0,1
                size_hint_y: 0.4
                size_hint_x: 0.3
        MDLabel:
            halign:'center'
            size_hint_y: 0.2

至于弱引用对象:

弱引用在基本级别上是对对象的引用,该对象将被垃圾收集删除。如果你想了解更多的信息,我建议你在这篇帖子上查看@AlexMartelli的详细答案。