[英]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.