我是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中吗?
请告诉我为什么会发生这样的错误。
为了考虑到你的愿望,我稍微修改了一下你的布局。. 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的详细答案。