繁体   English   中英

无法在 MDGridLayout 中添加 kivymd 的 MDTextField

[英]Unable to add kivymd's MDTextField in MDGridLayout

我是 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/emulated/0/@tsmile/projects/pro_two/.kivy/logs/kivy_21-03-19_38.txt 中记录日志
[信息] [基维] v1.11.1
[信息] [Kivy] 安装在“ /data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/init .py”
[INFO] [Python] v3.8.3(默认,2020 年 5 月 27 日,02:08:17)[GCC 9.3.0]
[信息] [Python] 解释器位于“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/bin/python3”
[INFO] [Logger] 清除日志已触发。 分析...
[INFO] [Logger] 清除 15 个日志文件
[INFO] [Logger] 清除完成!
[信息] [KivyMD] v0.104.1
[INFO] [Factory] 184 个符号已加载
[信息] [图像] 提供者:img_tex、img_dds、img_sdl2、img_pil、img_gif(img_ffpyplayer 被忽略)
[信息] [窗口] 提供者:sdl2
[INFO] [GL] 使用“OpenGL ES 2”图形系统
[INFO] [GL] 后端使用
[信息] [GL] OpenGL 版本 <b'OpenGL ES 3.2 v1.r20p0-01rel0.5a1b26bb5d6f760a7fe004c7d2efd431'>
[信息] [GL] OpenGL 供应商 <b'ARM'>
[INFO] [GL] OpenGL 渲染器 <b'Mali-G72 MP3'>
[INFO] [GL] OpenGL 解析版本:3、2
[INFO] [GL] 纹理最大尺寸 <8192>
[INFO] [GL] 纹理最大单位 <16>
[INFO] [Window] 自动添加 sdl2 输入提供程序
[INFO] [Window] 虚拟键盘不允许,单一模式,不停靠 [INFO] [Text] 提供者:sdl2 [INFO] [GL] NPOT 纹理支持可用 [INFO]应用程序启动[INFO] main.kv 加载 [INFO ] security.kv loaded [WARNING] [Base] Unknown provider [INFO] [Base] Start application main loop [INFO] [Base] Leaving application in progress...

回溯(最近一次通话最后):
文件“/storage/emulated/0/@tsmile/projects/pro_two/main.py”,第 36 行,在
项目()。运行()

运行中的文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/app.py”,第 855 行
运行触摸应用程序()

文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/base.py”,第 504 行,在 runTouchApp
EventLoop.window.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()

_mainloop 中的文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/core/window/window_sdl2.py”,第 479 行
EventLoop.idle()

文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/base.py”,第 339 行,处于空闲状态
Clock.tick() 文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/clock.py”,第 591 行,在刻度self._process_events() 文件“kivy/_clock.pyx”,第 384 行,在 kivy._clock.CyClockBase._process_events 文件“kivy/_clock.pyx”,第 414 行,在 Z0BB39C49D63D3AF49C90433B100A1E32Clock_process.yClock 文件“kivy/_clock.pyx”中。 .pyx", line 412, in kivy._clock.CyClockBase._process_events File "kivy/_clock.pyx", line 154, in kivy._clock.ClockEvent.tick File "kivy/_clock.pyx", line 86, in kivy. _clock.ClockEvent.get_callback 文件“/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.8/site-packages/kivy/weakmethod.py”,第 56 行,在 is_dead return self.proxy 不是 None 也不是 bool(dir(self.proxy))

ReferenceError:弱引用 object 不再存在

我收到参考错误错误,其中说

弱引用对象不存在

谁能建议我如何将 MDTextField 添加到 MDGridLayout?

还请告诉我为什么会发生这种错误。

我更正了您的布局以考虑您的意愿。 .py 保持不变,updated.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

至于弱引用的object:

弱引用在基本层面上是对 object 的引用,它将被垃圾回收删除。 如果您想了解更多有关它的信息,我建议您查看@AlexMartelli 在这篇文章中的详细回答。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM