Python 2.7 在GUI应用程序中,哪个功能应该位于驾驶员的位置?

Python 2.7 在GUI应用程序中,哪个功能应该位于驾驶员的位置?,python-2.7,tkinter,architecture,psse,Python 2.7,Tkinter,Architecture,Psse,我是一名电气工程师,通过PTI西门子公司为工程师构建Python应用程序,以与PSS/E电力系统仿真接口。按照代码当前的工作方式,该程序包含一个main方法,该方法在我编写的单独文件中调用两个类中的方法。在程序的不同步骤中,用户通过终端与程序交互,输入文件路径,按Enter键继续,等等 我正在用Tkinter实现GUI。用户将浏览选择几个文件,选择某些选项,然后按“开始”。然后,用户将在程序的不同步骤与GUI交互,而不是在终端中键入 在这个程序中实现GUI的原理是什么?我认为,一方面,我可以为G

我是一名电气工程师,通过PTI西门子公司为工程师构建Python应用程序,以与PSS/E电力系统仿真接口。按照代码当前的工作方式,该程序包含一个main方法,该方法在我编写的单独文件中调用两个类中的方法。在程序的不同步骤中,用户通过终端与程序交互,输入文件路径,按Enter键继续,等等

我正在用Tkinter实现GUI。用户将浏览选择几个文件,选择某些选项,然后按“开始”。然后,用户将在程序的不同步骤与GUI交互,而不是在终端中键入


在这个程序中实现GUI的原理是什么?我认为,一方面,我可以为GUI创建一个文件,从该文件启动程序,然后在用户按下“start”时调用main方法。来自用户的选项/文件路径将作为参数传递给main方法。另一方面,我正在考虑将GUI集成到我的主要方法中。有一个单独的文件,其中包含Tkinter小部件的类/方法,并根据需要从main调用它们。如果其中任何一个是最好的方式,为什么?我还有一个关于如何处理Python 2.7在2020年1月“退役”的问题,因为我的代码依赖于版本2.7。我将在另一个问题中提出这个问题,以便对这个GUI问题进行一些详细说明。提前感谢您的输入。

虽然可以将GUI程序编写为终端程序的直接端口,按照您的描述工作,主程序驱动与用户的交互流,但大多数GUI程序都是作为一组事件处理程序编写的,也称为回调函数。因为事件循环正在使用您提供给它的处理程序回调您

通常主程序只是声明控件,将它们绑定到处理程序,然后启动事件处理循环

组织这样一个项目有多种方法,这在很大程度上取决于您的工作流程

但是事件处理函数通常驱动整个逻辑,而不是主程序。这允许用户以较少的线性方式与您的程序交互

将事件处理逻辑解耦并创建一个表示程序状态和与GUI无关的逻辑的“模型”通常很有用。然后事件处理程序将调用模型的函数或方法来更改程序的状态。

您是否考虑过使用jupyterlab和IPyWidget而不是传统的GUI?我发现它对PSSE很有效。