【问题标题】:Kivy OSC WindowsKivy OSC 视窗
【发布时间】:2015-07-02 14:54:22
【问题描述】:

感谢您的快速回答 laltin。代码行在 .py 文件中。

kivy 1.9.0

从 kivy.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

类 OscShowcase(BoxLayout):

pass

类TestOscApp(App):

def build(self):
    return OscShowcase()

def send_Osc(self, *l):
    sendOSCMsg('activate', [3.0])
    #pass

如果 name == 'ma​​in':

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

【问题讨论】:

  • 首先检查你的缩进!!!其中 id do_root_action 定义
  • 感谢 laltin 的快速回答。事实上,当我尝试定义 id do_root_action 时,我遇到了麻烦。我希望有人在这方面帮助我。我是 1 个月前开始的。我不明白你的评论。你能给我解释一下你的意思吗?问候

标签: kivy osc


【解决方案1】:

.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 的快速回答。代码行现在看起来像这样:
  • 我更新了上面的代码行。告诉我你的想法。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 2011-01-09
  • 2012-09-10
  • 2020-11-24
  • 1970-01-01
相关资源
最近更新 更多