您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:21:33 python 字数 3065 阅读 543 来源 www.jb51.cc/python

我想编写一个带有基于文本的用户界面(TUI)的程序,该程序由几种形式组成.>第一个表单包含“列表”.每个列表元素代表一个按钮.>如果按下相应的按钮,则应显示另一个表单,其中可以输入列表条目的数据.>然后再次显示第一个表单(使用更新的列表条目).这是我的尝试,它使用库npyscreen但不返回第一个表单.代码也不包含更改列表项的逻辑.

概述

Presentation of the several forms.

    #! /usr/bin/env python3
    # coding:utf8

    import npyscreen

    # content
    headers = ["column 1","column 2","column 3","column 4"]
    entries = [["a1","a2","a3","a4"],["b1","b2","b3","b4"],["c1","c2","c3","c4"],["d1","d2","d3","d4"],["e1","e2","e3","e4"]]


    # returns a string in which the segments are padded with spaces.
    def format_entry(entry):
        return "{:10} | {:10} | {:10} | {:10}".format(entry[0],entry[1],entry[2],entry[3])


    class SecondForm(npyscreen.Form):
        def on_ok(self):
            self.parentApp.switchFormPrevIoUs()

        # add the widgets of the second form
        def create(self):
            self.col1 = self.add(npyscreen.TitleText,name="column 1:")
            self.col2 = self.add(npyscreen.TitleText,name="column 2:")
            self.col3 = self.add(npyscreen.TitleText,name="column 3:")
            self.col4 = self.add(npyscreen.TitleText,name="column 4:")


    class MainForm(npyscreen.Form):    
        def on_ok(self):
            self.parentApp.switchForm(None)

        def changeToSecondForm(self):
            self.parentApp.change_form("SECOND")

        # add the widgets of the main form
        def create(self):
            self.add(npyscreen.FixedText,value=format_entry(headers),editable=False,name="header")

            for i,entry in enumerate(entries):
                self.add(npyscreen.ButtonPress,when_pressed_function=self.changeToSecondForm,name=format_entry(entry))


    class TestTUI(npyscreen.NPSAppManaged):
        def onStart(self):
            self.addForm("MAIN",MainForm)
            self.addForm("SECOND",SecondForm,name="Edit row")

        def onCleanExit(self):
            npyscreen.notify_wait("Goodbye!")

        def change_form(self,name):
            self.switchForm(name)


    if __name__ == "__main__":
        tui = TestTUI()
        tui.run()

总结

以上是编程之家为你收集整理的python – 如何组合多个TUI表单来编写更复杂的应用程序?全部内容,希望文章能够帮你解决python – 如何组合多个TUI表单来编写更复杂的应用程序?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶