python开发一个复杂的网站_python – 如何组合多个TUI表单来编写更复杂的应用程序?...

我想编写一个带有基于文本的用户界面(TUI)的程序,该程序由几种形式组成.

>第一个表单包含“列表”.每个列表元素代表一个按钮.

>如果按下相应的按钮,则应显示另一个表单,其中可以输入列表条目的数据.

>然后再次显示第一个表单(使用更新的列表条目).

这是我的尝试,它使用库npyscreen但不返回第一个表单.代码也不包含更改列表项的逻辑.

#! /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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值