这是Python中最烦人的错误之一,根据问题的不同,有很多解决方案
Main.py
# imports
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
# Defining Screen, ScreenManager And App Classes:
class MainScreen(Screen):
pass
class ShortCuts(Screen):
pass
class WindowManager(ScreenManager):
pass
# Kivy Lang Builder Packed As A Variable
BLD = Builder.load_file("KV_FILE.kv")
class OnlineClassMacros(App):
# Initializing The App
def __init__(self, **kwargs):
super(OnlineClassMacros, self).__init__(**kwargs)
# Defining The App By Referencing The Packed Kivy.Lang.Builder Variable Created At The Start Of The .py File
def build(self):
return BLD
@staticmethod
def Get():
query = BLD.ids.SearchEngine.text
print(query)
# ToDo: Monetize The >>Online Class Macros<< Application By Using KivMob
# MainLooping The Application Using [if __name__ == "__main__":]
if __name__ == "__main__":
OnlineClassMacros().run()
KV_FILE.kv
# Importing Our Function.py As A Python Module Into Kivy-Lang\
#######################################################
#:import redirect Function.redirect
#######################################################
# Pre-Styling Widgets
<Label>
halign: 'center'
valign: 'center'
background_color: '0', '.4', '.3', '.4'
<Button>
halign: 'center'
valign: 'center'
background_color: "0", ".1", ".1", ".8"
# Configuring The Screens And The Screen Manager
WindowManager:
MainScreen:
ShortCuts:
# Building All The Classes In Our "Main.py" File
<MainScreen>:
name: "MainScreen"
canvas.before:
Rectangle:
size: self.size
pos: self.pos
source: "Images/background 2.png"
BoxLayout:
orientation: "horizontal"
BoxLayout:
size_hint: .2,1
orientation: "vertical"
Button:
text: "Google\nDocs"
on_release: redirect("https://www.docs.google.com")
Button:
text: "Google\nSlides"
on_release:
redirect("https://slides.google.com/u/0/h")
Button:
text: "Gmail"
on_release:
redirect("https://www.gmail.com")
Button:
text: "Google\nClassroom"
on_release:
redirect("https://classroom.google.com/u/0/")
BoxLayout:
size_hint: .6,1
BoxLayout:
orientation: "vertical"
TextInput:
size_hint: 1, .2
multiline: True
hint_text: "Search here"
background_color: 1,1,1,.78
id: SearchEngine
GridLayout:
cols: 3
Button:
text: "Google Scholar\nSearch"
Button:
text: "Wikipedia\nSearch"
on_release:
app.Get()
Button:
text: "Google\nSearch"
Button:
text: "RefSeek\nSearch"
Button:
text: "Microsoft Academic\nSearch"
Button:
text: "Hyper Search"
background_color: 1,0,0,.99
BoxLayout:
size_hint: .2,1
orientation: "vertical"
Button:
text: "Google\nSpreadSheets"
on_release:
redirect("https://classroom.google.com/u/0/h")
Button:
text: "MicroSoft\nTeams"
on_release:
redirect("https://classroom.google.com/u/0/h")
Button:
text: "OutLook"
on_release:
redirect("https://classroom.google.com/u/0/h")
<ShortCuts>:
canvas.before:
Rectangle:
pos: self.pos
size: self.pos
source: 'Images/ Background 3.png'
C:\Users\mayan\AppData\Local\Programs\Python\Python39\python.exe "C:/Online Class Macros ;)/Main.py"
[INFO ] [Logger ] Record log in C:\Users\mayan\.kivy\logs\kivy_21-06-13_7.txt
[INFO ] [deps ] Successfully imported "kivy_deps.gstreamer" 0.3.2
[INFO ] [deps ] Successfully imported "kivy_deps.angle" 0.3.0
[INFO ] [deps ] Successfully imported "kivy_deps.glew" 0.3.0
[INFO ] [deps ] Successfully imported "kivy_deps.sdl2" 0.3.1
[INFO ] [Kivy ] v2.0.0
[INFO ] [Kivy ] Installed at "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\__init__.py"
[INFO ] [Python ] v3.9.4 (tags/v3.9.4:1f2e308, Apr 6 2021, 13:40:21) [MSC v.1928 64 bit (AMD64)]
[INFO ] [Python ] Interpreter at "C:\Users\mayan\AppData\Local\Programs\Python\Python39\python.exe"
[INFO ] [Factory ] 186 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Window ] Provider: sdl2
[INFO ] [GL ] Using the "OpenGL" graphics system
[INFO ] [GL ] GLEW initialization succeeded
[INFO ] [GL ] Backend used <glew>
[INFO ] [GL ] OpenGL version <b'4.0.0 - Build 10.18.10.5059'>
[INFO ] [GL ] OpenGL vendor <b'Intel'>
[INFO ] [GL ] OpenGL renderer <b'Intel(R) HD Graphics'>
[INFO ] [GL ] OpenGL parsed version: 4, 0
[INFO ] [GL ] Shading version <b'4.00 - Build 10.18.10.5059'>
[INFO ] [GL ] Texture max size <16384>
[INFO ] [GL ] Texture max units <16>
[INFO ] [Window ] auto add sdl2 input provider
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [GL ] NPOT texture support is available
[INFO ] [GL ] Unpack subimage support is available
[INFO ] [Text ] Provider: sdl2
[INFO ] [Base ] Start application main loop
[INFO ] [Base ] Leaving application in progress...
Traceback (most recent call last):
File "kivy\properties.pyx", line 861, in kivy.properties.ObservableDict.__getattr__
KeyError: 'SearchEngine'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Online Class Macros ;)\Main.py", line 46, in <module>
OnlineClassMacros().run()
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\app.py", line 950, in run
runTouchApp()
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\base.py", line 582, in runTouchApp
EventLoop.mainloop()
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\base.py", line 347, in mainloop
self.idle()
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\base.py", line 391, in idle
self.dispatch_input()
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\base.py", line 342, in dispatch_input
post_dispatch_input(*pop(0))
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\base.py", line 308, in post_dispatch_input
wid.dispatch('on_touch_up', me)
File "kivy\_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\uix\behaviors\button.py", line 179, in on_touch_up
self.dispatch('on_release')
File "kivy\_event.pyx", line 705, in kivy._event.EventDispatcher.dispatch
File "kivy\_event.pyx", line 1248, in kivy._event.EventObservers.dispatch
File "kivy\_event.pyx", line 1132, in kivy._event.EventObservers._dispatch
File "C:\Users\mayan\AppData\Local\Programs\Python\Python39\lib\site-packages\kivy\lang\builder.py", line 57, in custom_callback
exec(__kvlang__.co_value, idmap)
File "C:\Online Class Macros ;)\KV_FILE.kv", line 70, in <module>
app.Get()
File "C:\Online Class Macros ;)\Main.py", line 36, in Get
query = BLD.ids.SearchEngine.text
File "kivy\properties.pyx", line 864, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
Process finished with exit code 1
这个错误以前发生在我身上,我解决了它,但正如我所说,答案取决于问题。 如果没有人删除我的问题,说这是重复的,我将不胜感激
神秘的错误消息帮助不大,但堆栈跟踪显示错误发生在以下行:
此行失败的原因是您试图访问}是在
id
(SearchEngine
)对象中不存在的BLD
。BLD
对象是kv
的根,它是WindowManager
,但是SearchEngine
{<MainScreen>:
规则中定义的。因此,修复方法是通过正确的对象访问该id:注意documentation表示:
那份文件是不正确的。
ids
实际上是添加到包含id
的规则的基本对象,而不是添加到kv
文件的根小部件相关问题 更多 >
编程相关推荐