1

好的,所以我在 TraitsUI 中发现有用于 error() 和 message() 的函数将文本连同可选按钮(如确定和/或取消)一起放入“消息框”。

如何捕获从 message() 或 error() 调用中按下的 OK 或 Cancel 按钮?

我被要求提交一个例子......这是我拼凑的一个简单的小例子:

from traits.api import HasTraits,Button

from traitsui.api import View, Group, Item

from traitsui.message import auto_close_message, error, message



class Testing(HasTraits):
    EBtn   = Button( 'make error msg')
    MBtn   = Button( 'make message msg')
    ACBtn  = Button( 'make AC message')

    view = View(
        Group(
            Item ("EBtn", show_label=False),
            Item ("MBtn", show_label=False),
            Item ("ACBtn", show_label=False),
        )
    )

    def _EBtn_fired(self):
        """create an error() message"""
        rtn = error('This is an error() message', 'test message')
        auto_close_message('error() button hit was ' + repr(rtn), 2.0, 'Button Return')

    def _MBtn_fired(self):
        """create a message() message"""
        rtn = message('This is a message() message', 'test message', buttons=['OK', 'Cancel', 'Something Different'])
        auto_close_message('message() button hit was ' + repr(rtn), 3.0, 'Button Return')

    def _ACBtn_fired(self):
        """create an auto_close_message() message"""
        rtn = auto_close_message('This is an auto_close_message() message', 2.0, 'test message')



# Run the program (if invoked from the command line):
if __name__ == '__main__':
    # Create the dialog:
    testDialog = Testing()

    # put the actual dialog up...
    testDialog.configure_traits()

如果单击中间按钮(对于消息框),它有 3 个按钮...确定、取消和不同的东西...如果单击确定或取消,则返回消息,我可以测试返回值,但是,如果我的自定义按钮(不同的东西)被点击,什么都没有发生?如何判断我的自定义按钮是否被按下?

4

0 回答 0