繁体   English   中英

GUI应用程序应该在驾驶员座位上使用哪个功能?

[英]Which Function Should be in the Driver's Seat on a GUI Application?

我是一位电气工程师,正在构建一个Python应用程序以与PSS / E(PTI Siemens的“工程师的电源系统仿真”)接口。 该程序当前包含的代码工作方式包含一个main方法,该方法从我编写的两个类(在单独的文件中)中调用方法。 在程序的各个不同步骤中,用户都通过终端与之交互(输入文件路径,按Enter继续,等等)。

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

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

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

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

组织此类程序的方式有很多种,这在很大程度上取决于您的工作流程。

但是事件处理功能通常会驱动整体逻辑,而不是主程序。 这允许用户以不太线性的方式与您的程序进行交互。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM