python - 在另一个类中使用时钟信息
问题描述
我尝试编写一个简单的时钟应用程序。它运作良好,但我想知道,是否有办法在 Drawing() 类中使用 simple_clock(App) 中的方法并将信息存储在那里?
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Line
from kivy.core.image import Image
from kivy.uix.button import Button
from kivy.clock import Clock
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.uix.gridlayout import GridLayout
class another_screen(Screen):
pass
class Drawing():
pass
presentation = Builder.load_file("simple_clock_kivy.kv")
class simple_clock(App):
sw_started = False
sw_seconds = 0
def update_clock(self, nap):
if self.sw_started:
self.sw_seconds += nap
print(self.sw_seconds)
def start_stop(self):
self.sw_started = True
def reset(self):
if self.sw_seconds:
self.sw_seconds = 0
else:
pass
def stop_clock(self):
self.sw_started = False
def on_start(self):
Clock.schedule_interval(self.update_clock, 0)
def build(self):
return presentation
if __name__=="__main__":
simple_clock().run()
<another_screen>:
name: "other"
FloatLayout:
Drawing:
id: other
Button:
id: start_stop
text: 'Start'
size_hint: 0.2, 0.05
pos_hint: {"x": 0, "bottom": 1}
on_press: app.start_stop()
Button:
id: reset
text: 'Reset'
size_hint: 0.2, 0.05
pos_hint: {"x": 0.6, "bottom": 1}
on_press: app.reset()
Button:
id: stop
text: 'Stop'
size_hint: 0.2, 0.05
pos_hint: {"x": 0.8, "bottom": 1}
on_press: app.stop_clock()
有人按下“开始”按钮,时间开始计时,允许绘图;“停止”按钮,时间停止。我想将绘图的持续时间保存到一个变量中。
解决方案
访问类 App() 中定义的属性/方法
在任何课外class App()
- 用于
App.get_running_app()
获取对象,app
- 调用方法,例如
App.get_running_app().update_clock()
- 访问属性,例如
App.get_running_app().sw_seconds
推荐阅读
- java - Websphere java.rmi.RemoteException: CORBA BAD_OPERATION
- electron - 每次使用 Squirrel.Windows 更新应用程序时,如何避免添加新的 Windows 防火墙豁免?
- javascript - 使用数据属性中的值作为 url 参数
- javascript - JSLint:在匿名函数中定义之前使用
- ldap - 如何从 Websphere 7.0 在 Jboss EAP 6.4 中携带 Ldap 设置
- json - Json Schema - oneOf 与通配符路径的引用?
- python - 在 Python 中插入 TreeView 时如何修复 UnicodeDecodeError?
- maven - 是否可以有一个带有父 POM *和*模块的 Maven 项目?
- android - 颤振谷歌标签管理器android没有在GA中发送任何数据
- html - 将绝对元素定位在相对父容器之外