0

我想我错过了一些非常基本的东西,但我无法让这个功能发挥作用。
我正在使用 npyscreen 4.10.5 在 Redhat 上运行 python 3.6.12。我的期望是 safe_to_exit 函数可用于在用户退出字段(使用 tab 键)时立即验证任何输入,但我根本无法让它触发。可能我完全误解了这一点。这是我的测试代码,精简以使其尽可能简单:

import npyscreen

def test1(*args):
    F = npyscreen.Form(name='My Test Application')
    Field1 = F.add(npyscreen.TitleText, name="My Test Field")
    Field1.safe_to_exit = Field1_Validations
    F.edit()
    return Field1.value

def Field1_Validations():
    npyscreen.notify_confirm("Safe to exit")
    return True


if __name__ == '__main__':
    onefield = npyscreen.wrapper_basic(test1)
    print("Results are : {} ".format(onefield))

任何指针将不胜感激。

4

2 回答 2

0

拉了很多头发后,我解决了。它们的语法是(适用于上面的代码示例):

self.Field1.entry_widget.safe_to_exit = Field1_Validations
于 2021-02-19T01:39:35.993 回答
0

我仍在挖掘,但我发现它似乎不是在所有小部件上都实现了 safe_to_exit。将小部件从“TitleText”更改为“Textfield”会导致验证代码触发。

于 2021-01-30T18:49:11.273 回答