首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enaml获取事件处理程序中传递的参数

Enaml获取事件处理程序中传递的参数
EN

Stack Overflow用户
提问于 2015-04-28 09:27:18
回答 1查看 369关注 0票数 2

我正在用Python中的Enaml设计一个UI。我有一个自定义控件,包括两个按钮。每次点击这两个按钮中的任何一个,一个是1,另一个是id-ed 2,我希望父容器具有单击哪个按钮的感觉。因此,事件处理程序与父处理程序接受一个额外的参数来区分事件的源。这是我的密码

代码语言:javascript
复制
from enaml.widgets.api import (
    Window, Container, PushButton
)

enamldef TwoButtons(Container):  
    attr cont
    PushButton:        
        text = 'Button1'
        clicked :: cont.clicked(1)

    PushButton:
        text = 'Button2'
        clicked :: cont.clicked(2)


enamldef Main(Window):
    Container:
        attr buttonId
        event clicked

        TwoButtons:
            cont = parent

        clicked ::
            # A way to read the event handler argument goes here
            print "Someone is clicked, don't know who :("

有什么建议吗?

谢谢,并致以最良好的问候!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-29 13:10:35

从我同事那里得到了一些线索。我们可以使用内置的change字典来跟踪事件。

完整的代码列表:

代码语言:javascript
复制
from enaml.widgets.api import (
    Window, Container, PushButton)

enamldef TwoButtons(Container):  
    attr cont
    PushButton:        
        text = 'Button1'
        clicked :: cont.clicked(1)

    PushButton:
        text = 'Button2'
        clicked :: cont.clicked(2)


enamldef Main(Window):
    Container:
        attr buttonId
        event clicked

        TwoButtons:
            cont = parent

        clicked ::
            print change.get('value')
            print "I know it's you {i:s}".format(s=change['value'])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29915502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档