基维 OSC Windows
Kivy OSC Windows
感谢 laltin 的快速回答。代码行在 .py 文件中。
基维 1.9.0
从 kivy.app 导入 App
从 kivy.uix.floatlayout 导入 FloatLayout
从 kivy.uix.boxlayout 导入 BoxLayout
从 kivy.uix.button 导入按钮
从 kivy.uix.gridlayout 导入 GridLayout
从 kivy.uix.widget 导入小部件
从 kivy.lang 导入生成器
从 simpleOSC 导入 initOSCClient、initOSCServer、closeOSC、\
setOSCHandler, 发送OSCMsg
class OscShowcase(BoxLayout):
pass
class TestOscApp(App):
def build(self):
return OscShowcase()
def send_Osc(self, *l):
sendOSCMsg('activate', [3.0])
#pass
if name == 'main':
host = '127.0.0.1'
sport = 9000
rport = 9001
# osc
initOSCClient(host, sport)
initOSCServer(host, rport)
TestOscApp().run()
.kv 文件
:
BoxLayout:
Widget:
Button:
text: 'OSC'
pos: (500, 400)
on_press: app.send_Osc()
sendOSCMsg: ('/%s/press', [])
#on_release: app.send_Osc()
#sendOSCMsg: ('activate', [3.0])
您认为我可以直接在 kv.file 中编辑 OSC 消息,以便将每个按钮与其分配的 osc 消息分开吗?这从一开始就是我的主要问题。事实上,我想使用 OSC 协议在 3 个系统 Ipad、MacbookPro 和 pc 上同时控制我的 Max 补丁之一。我认为 Kivy 在这方面是最好的。我已经有了我主要用 kv 设计的图形计划。语言。如果您不介意,我可以与您分享代码。再次感谢您的大力帮助。
stkflwrglator
.kv 文件中的 on_press: do_root_action()
行意味着当用户按下按钮时,函数 do_root_action 将被调用。但是 do_root_action 未在您的应用程序中定义。
将 send_Osc
方法添加到您的应用程序:
class TestOscApp(App):
...
def send_Osc(self, *l):
sendOSCMsg('/chaine_en_dur/', [2.0])
按下按钮时调用 send_Osc
方法
Button:
text: 'OSC'
pos: (500, 500)
on_press: app.send_Osc()
感谢 laltin 的快速回答。代码行在 .py 文件中。
基维 1.9.0
从 kivy.app 导入 App
从 kivy.uix.floatlayout 导入 FloatLayout
从 kivy.uix.boxlayout 导入 BoxLayout
从 kivy.uix.button 导入按钮
从 kivy.uix.gridlayout 导入 GridLayout
从 kivy.uix.widget 导入小部件
从 kivy.lang 导入生成器
从 simpleOSC 导入 initOSCClient、initOSCServer、closeOSC、\ setOSCHandler, 发送OSCMsg
class OscShowcase(BoxLayout):
pass
class TestOscApp(App):
def build(self):
return OscShowcase()
def send_Osc(self, *l):
sendOSCMsg('activate', [3.0])
#pass
if name == 'main':
host = '127.0.0.1'
sport = 9000
rport = 9001
# osc
initOSCClient(host, sport)
initOSCServer(host, rport)
TestOscApp().run()
.kv 文件
:
BoxLayout:
Widget:
Button:
text: 'OSC'
pos: (500, 400)
on_press: app.send_Osc()
sendOSCMsg: ('/%s/press', [])
#on_release: app.send_Osc()
#sendOSCMsg: ('activate', [3.0])
您认为我可以直接在 kv.file 中编辑 OSC 消息,以便将每个按钮与其分配的 osc 消息分开吗?这从一开始就是我的主要问题。事实上,我想使用 OSC 协议在 3 个系统 Ipad、MacbookPro 和 pc 上同时控制我的 Max 补丁之一。我认为 Kivy 在这方面是最好的。我已经有了我主要用 kv 设计的图形计划。语言。如果您不介意,我可以与您分享代码。再次感谢您的大力帮助。
stkflwrglator
.kv 文件中的 on_press: do_root_action()
行意味着当用户按下按钮时,函数 do_root_action 将被调用。但是 do_root_action 未在您的应用程序中定义。
将 send_Osc
方法添加到您的应用程序:
class TestOscApp(App):
...
def send_Osc(self, *l):
sendOSCMsg('/chaine_en_dur/', [2.0])
按下按钮时调用 send_Osc
方法
Button:
text: 'OSC'
pos: (500, 500)
on_press: app.send_Osc()