python - 如何在 npyscreen 中制作退出按钮?

标签 python npyscreen

我想要的基本上是一个常规的 npyscreen.Form,但我想要“确定”按钮说“退出”。

看来你不能在常规 npyscreen.Form 中更改按钮的名称,所以我尝试子类化 npyscreen.ButtonPress:

import npyscreen

class ExitButton(npyscreen.ButtonPress):
    def whenPressed(self):
        self.parentApp.setNextForm(None)

class MainForm(npyscreen.FormBaseNew):
    def create(self):
        self.exitButton = self.add(ExitButton, name="Exit", relx=-12, rely=-3)

class App(npyscreen.NPSAppManaged):
    def onStart(self):
        self.addForm("MAIN", MainForm, name="My Form")

if __name__ == "__main__":
    app = App().run()

按钮出现了,但是当你点击它时,你会得到 'ExitButton' object has no attribute 'parentApp'

有更简单的方法吗?

最佳答案

Edwin 的权利,使用 self.parent.parentApp 而不是 self.parentApp

要退出应用程序,请使用 switchForm(None) 而不是 setNextForm(None)

def whenPressed(self):
    self.parent.parentApp.switchForm(None)

引用:一个post by npyscreen's author确认这按预期工作。

关于python - 如何在 npyscreen 中制作退出按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515278/

相关文章:

python - 如何将属性或对象注入(inject)到 Django Rest Framework 中的 View 中?

python - 如何组合多个 TUI 表单来编写更复杂的应用程序?

python - 如何使用 Python 测试 ncurses 应用程序?

python - Django:跨多个文件拆分测试,但共享同一个数据库?

python - string.unpack ('<I2s2' , data) 在Lua脚本中是什么意思?

python - 倒下的多米诺骨牌,调试

python - 如何创建一个总结多个日常资料的情节?