Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ncurses模板,表_Python_Ncurses_State Machine - Fatal编程技术网

Python ncurses模板,表

Python ncurses模板,表,python,ncurses,state-machine,Python,Ncurses,State Machine,我正在编写一个基于状态机的python程序,该程序当前将机器的状态打印到控制台。这是一个有用的日志,但不是最用户友好的界面 我很想知道是否有在Python中使用ncurses的好例子,最好是在OOP中,在表中显示不断变化的信息(例如:状态信息) 他们已经在python中尝试了curses包,但是它并不像我想要的那样是OO 这就是流当前的样子: manager: st_machine_01 state INITIALISE manager: st_machine_01 st

我正在编写一个基于状态机的python程序,该程序当前将机器的状态打印到控制台。这是一个有用的日志,但不是最用户友好的界面

我很想知道是否有在Python中使用ncurses的好例子,最好是在OOP中,在表中显示不断变化的信息(例如:状态信息)

他们已经在python中尝试了
curses
包,但是它并不像我想要的那样是OO

这就是流当前的样子:

manager:    st_machine_01    state INITIALISE
manager:    st_machine_01    state GET_LIST_PAGES
manager:    st_machine_02    state EXIT
manager:    st_machine_03    state INITIALISE
manager:    st_machine_03    state GET_LIST_PAGES
manager:    st_machine_04    state EXIT
manager:    st_machine_05    state INITIALISE
manager:    st_machine_05    state GET_LIST_PAGES
manager:    st_machine_01    state GET_LIST_PAGES
manager:    st_machine_05    state GET_LIST_PAGES
manager:    st_machine_05    state EXIT
manager:    st_machine_01    state GET_LIST_PAGES
manager:    st_machine_06    state INITIALISE
manager:    st_machine_06    state GET_LIST_PAGES
manager:    st_machine_01    state GET_LIST_PAGES
manager:    st_machine_06    state GET_LIST_PAGES
manager:    st_machine_01    state EXIT
manager:    st_machine_06    state GET_LIST_PAGES
manager:    st_machine_07    state INITIALISE
manager:    st_machine_07    state GET_LIST_PAGES
manager:    st_machine_06    state GET_LIST_PAGES
manager:    st_machine_06    state EXIT
而在上述流的最后一点呈现的ncurses“table”看起来像:

manager:    st_machine_01    state EXIT
manager:    st_machine_02    state EXIT
manager:    st_machine_03    state GET_LIST_PAGES
manager:    st_machine_04    state EXIT
manager:    st_machine_05    state EXIT
manager:    st_machine_06    state EXIT
manager:    st_machine_07    state GET_LIST_PAGES

我想在Python2.7 64位和Windows7 64位上实现这一点。

您可以使用标准的
诅咒模块。您可以找到它的文档。

您可以使用标准的
诅咒
模块。你可以找到它的文档。

如果
咒骂
不够(出于某些未描述的原因),或者可以更好地满足你的需要。

如果
咒骂
不够(出于某些未描述的原因),或者可以更好地满足你的需要。

ncurses包不是非常面向对象的,但是,使用面向对象的方法使用它肯定会让您受益匪浅

class screen {
  class rectangle {
    class line { 
      string default_text="please enter a command (press 'e' to list available events) >> ";
    }
  }
}

sm_window = new screen("sc1").new rectangle( "log_rect", lines=7 );
log_rect.line[7] = "st_machine_05 changed to Get_List_Pages from state Exit";
如果您将所有对ncurses包的访问都保留在这几个类中,那么您将比在现有应用程序中到处使用ncurses调用走得更远

如果由于某种原因没有将所有字段设置为私有字段,则可以直接从screen类访问所有必需的程序数据。

ncurses包不是非常面向对象的,但是,使用面向对象的方法使用它肯定会让您受益匪浅

class screen {
  class rectangle {
    class line { 
      string default_text="please enter a command (press 'e' to list available events) >> ";
    }
  }
}

sm_window = new screen("sc1").new rectangle( "log_rect", lines=7 );
log_rect.line[7] = "st_machine_05 changed to Get_List_Pages from state Exit";
如果您将所有对ncurses包的访问都保留在这几个类中,那么您将比在现有应用程序中到处使用ncurses调用走得更远


如果由于某种原因您没有将所有字段设置为私有字段,您可以直接从screen类访问所有必需的程序数据。

curses包没有我想要的那么完整。您可以在问题中添加额外的条件吗?谢谢。诅咒包没有我想要的那么完整。你能在你的问题中添加额外的条件吗?谢谢。机器正常的时候看起来不错。如果将显示限制为仅7行和状态或命令行,则当状态发生变化时,可以快速闪烁屏幕。如果你很快重印新的州,它看起来会很酷。您可以在最后一行添加一个日志条目,
st\u machine\u 05更改为从state Exit获取\u List\u页面
…当机器处于正常状态时,这看起来非常好。如果将显示限制为仅7行和状态或命令行,则当状态发生变化时,可以快速闪烁屏幕。如果你很快重印新的州,它看起来会很酷。您可以在最后一行添加一个日志条目,
st_machine\u 05更改为从state Exit获取列表页面。
…我以前在Python中使用过ncurses,正如您所说,它到处都是ncurses调用,因此我想使用OO,希望得到事件驱动的东西(比如GUI框架)。我正在考虑学习一些python,并想为您提供一些帮助,我以前在python中使用过ncurses,正如您所说的,它到处都有ncurses调用,因此我希望使用OO,并希望获得事件驱动的东西(如GUI框架).我想学点python,想给你一些帮助,