基维 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()