python - Kivy 在 anaconda 上跑得很奇怪
问题描述
我有一个关于 kivy 的问题,它在 anaconda 上运行很奇怪
第一件奇怪的事情:我必须添加到 kivy 文件中,然后运行它并从 kivy 代码中的 MenuScreen 中删除 <> 并再次运行该文件,以便我的代码像我想要的那样运行。如果我不这样做,代码将给出FactoryException: Unknown class <MenuScreen>
第二个奇怪的事情是,在我结束 kivy 并再次运行它之后,它不允许我在应用程序上更改屏幕,我必须重新启动 shell 并执行所有类似(上面的第一个奇怪的事情)的所有操作,以便它切换屏幕并正常运行.
这是代码:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from kivy.uix.widget import Widget
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty
kv = Builder.load_file('mymain.kv')
class MainWindow(Screen):
pass
class SecondWindow(Screen):
point = ObjectProperty(None)
note = ObjectProperty(None)
def pressed(self):
''' this fuction is the function of the good action button'''
point1 = self.point.text
Note1 = self.note.text
try:
point1 = int(point1)
print("You just got: ",point1)
print('Note of this action: ')
print(Note1)
except:
if point1 == '':
print('please enter something')
else:
print("point should be a number")
#print(point1, Note1)
self.point.text = ""
self.note.text = ''
#return grid
def increased(self):
''' this function is to increase the mark'''
point2 = self.point.text
try:
point2 = int(float(point2))+1
print('increase point is', point2)
#self.point.text = str(point2)
except:
point2 = 1
print('your point is: ','1')
self.point.text = str(point2)
def decreased(self):
''' this function decrease the point'''
point3 = self.point.text
try:
point3 = int(float(point3))-1
print('decrease point is', point3)
#self.point.text = str(point3)
except:
point3 = -1
print('your point is: ', '-1')
self.point.text = str(point3)
class MenuScreen(ScreenManager):
pass
class MyMainApp(App):
def build(self):
return kv
if __name__ == '__main__':
MyMainApp().run()
这是 mymain.kv
MenuScreen:
MainWindow:
SecondWindow:
<MainWindow>:
name: "main"
GridLayout:
cols: 1
Button:
text: 'Good'
on_release: app.root.current = 'second'
Button:
text: 'Bad' #not doing anything yet
<SecondWindow>:
name: 'second'
point: point
note: note
GridLayout:
cols: 1
size: root.width, root.height
GridLayout:
cols: 3
Label:
text: 'Good Point: '
TextInput:
id: point
multiline: False
GridLayout:
cols: 1
Button:
text: 'up'
on_press: root.increased()
Button:
text: 'down'
on_press: root.decreased()
Label:
text: 'Note: '
TextInput:
id: note
multiline: True
Button:
text: ' submit'
on_press: root.pressed()
请帮我。不知道为什么 kivy 会这样跑。
谢谢
解决方案
变化中mymain.kv
:
MenuScreen:
MainWindow:
SecondWindow:
至
<MenuScreen>:
MainWindow:
SecondWindow:
推荐阅读
- javascript - 给定 JavaScript 中的 URL,我如何下载视频?
- amazon-web-services - 无法让 API 网关与私有 VPC 链接一起工作(在网络负载均衡器后面到 Fargate 容器)
- python - 尝试使用 Python 将 JSON 文件中的值插入 MySQL,为什么我的表变为空?
- django-models - 如何计算与 Django 的深层关系字段?
- python - 从数据库更新 ScrollView 中的按钮文本
- c# - Implement operator overrides / Equatable
for all primitive number datatypes at once? - javascript - 从 Spotify API 请求 reshresh_token 时,如何解决“错误:invalid_grant Invalid authentication code”?
- r - R中的嵌套循环用于创建矩阵数组
- c - 按值调用时按引用调用的行为
- c++ - QtCreator 中的“致命错误 C1083:无法打开包含文件”