使用基维。花园。旋钮,还有一个问题: 当我移动旋钮时,我试图把它的值发送到命令行,但是我不能使它工作,有什么建议吗? 这是全部代码,先谢谢你,FD。在
#!/usr/bin/python
from threading import Thread
from cmd import Cmd
import logging
logging.getLogger("kivy").disabled = True
from kivy.app import App
from kivy.core.window import Window
from kivy.garden.knob import Knob
from kivy.uix.gridlayout import GridLayout
from kivy.uix.screenmanager import ScreenManager, Screen
class FirstTimeConnect(Screen):
def __init__(self, **kwargs):
super(FirstTimeConnect, self).__init__(**kwargs)
layout = GridLayout(cols=2)
layout.knob1 = Knob(knobimg_source="/Users/admin/Dropbox/Strumenti/Concatenativa_PyCpp/knob_img/knob_black.png", marker_img="/Users/admin/Dropbox/Strumenti/Concatenativa_PyCpp/knob_img/bline.png")
layout.add_widget(layout.knob1)
def on_knob(self, value):
print "hi"
layout.knob1.bind(on_knob=on_knob)
self.add_widget(layout)
sm = ScreenManager()
sm.add_widget(FirstTimeConnect(name='First Time Connect'))
class MyCmd(Cmd, object):
pass
class MyApp(App):
def build(self):
#return LogScreen()
return sm
if __name__ == '__main__':
app = MyApp()
Thread(target=app.run()).start()
MyCmd(app).cmdloop()
要重写小部件/类中的方法,您需要从该类继承方法。您所做的是“重写”}这样的方法,它只是创建了一个新的方法。在
Screen
的on_knob
方法,由于Screen
没有{还要注意没有属性} 有点“手动”绑定。在偶然的Kivy行为中,
^{pr2}$knob
,它与^{on_*
方法是事件,要覆盖它们,您需要执行以下操作:取决于你想先执行什么,即
super
+print
)print
+super
)在完全重写它的情况下,只需从方法中删除
super()
,它不会执行默认行为,例如,假设您使用以下内容重写on_touch_down
:如果触摸与小部件的某个区域发生碰撞(如果您触摸小部件),则不会发生触摸事件。在
相关问题 更多 >
编程相关推荐