通过按下另一个py文件上的按钮打开py文件

时间:2012-08-21 17:59:21

标签: python wxpython

我使用带有多个* .py脚本的wxpython对游戏进行编码,我想,当我按下主脚本中的按钮时,会启动另一个脚本。

示例:我为具有多个选项的游戏菜单窗口启动* .py脚本。当我按下选项按钮时,它将启动分配给该按钮的其他脚本并打开选项窗口

我该怎么做? THX

4 个答案:

答案 0 :(得分:1)

单击按钮时,不应启动另一个* .py文件,而应重新考虑如何组织代码。将每个窗口分成不同的python脚本可能不是可行的方法。这需要你用子过程做一些杂乱的事情,你可能最终会遇到大量的竞争条件。

更好的方法是organize your code into modules,将它们导入主程序,并在需要时调用它们。

例如,如果您在settings模块中放置了与游戏配置有关的一切并将其导入,而不是告诉操作系统使用Python解释器运行脚本,您只需调用{{ 1}}来自你的主程序。

答案 1 :(得分:0)

你尝试过使用子进程吗?

您可以将按钮事件分配给子流程以启动另一个py脚本。

答案 2 :(得分:0)

我建议使用os模块,以防万一你想要运行一个脚本直到它关闭,或者换句话说就像把主脚本放在地上并将焦点放在选项窗口中

使用os.system('script_name.py')<在Windows中

os.system('python script.py')<在给予权限之后在Linux中

答案 3 :(得分:0)

启动一个新的Python脚本通常是使用os.system或subprocess完成的,但听起来你想要做的就是在wxPython中打开另一个框架或对话框。如果是这样,那么只需将所有辅助框架代码放入单独的文件中,然后将其导入主文件即可。然后在主框架的按钮事件处理程序中实例化框架并显示它。如果您正在显示对话框,则同样适用。您可以在此处看到显示辅助框架的一般概念:http://www.blog.pythonlibrary.org/2010/06/27/wxpython-and-pubsub-a-simple-tutorial/(尽管它隐藏了该示例中的主框架)。