如何使用按钮小部件执行外部脚本?

Posted

技术标签:

【中文标题】如何使用按钮小部件执行外部脚本?【英文标题】:How to execute external script by using button widget? 【发布时间】:2015-03-25 23:09:13 【问题描述】:

我正在尝试通过按下我的 GUI(名为 BEN.py)上的按钮来执行外部脚本(名为 EC.py),我希望将其插入到我的 GUI 中的列表(list1)中。

我的外部脚本(EC.py)是这样的:

import scipy
import numpy as np
from scipy import misc
from scipy import ndimage

I = scipy.misc.imread('lena.jpg').astype(int) 
J = (I/10)*10
K = J + 10
Print K

我的 GUI (BEN.py) 代码是:

import os
import Tkinter as tk
import ttk

def Execute():
EC.K
list1.insert(END, K)

我的按钮小部件:

mybutton = Button(myGUI, text=”Execute Code”, command = Execute).pack()

我的输出列表:

list1 = Listbox(myGUI, height=20, width=80)

一切都很顺利,除了运行我的 GUI 代码,它在我按下按钮之前已经读取了 EC.py 脚本。我想要的是让这个脚本只在我按下按钮时运行。

【问题讨论】:

您可能想阅读modules。 【参考方案1】:

我想(因为你没有写完整的源代码)你写了 import EC 在致电 EC.K 之前 当然 Python 在启动时会生成 EC.pyc(编译版)来优化多模块导入并验证所有隐含模块的语法。

在某种程度上,您想要的是动态生成代码。 EC.py 我不关注这种行为的安全问题,但最简单的方法是使用:

try: execfile ("EC.py")
except Exception,msg:
    print msg
raise

【讨论】:

对不起@Jerome,我是python新手,有些事情对我来说仍然很困惑。当您认为我在调用 EC.K 之前导入了 EC.py 时,您是对的。我的疑问是在哪里包含您上面建议的代码?在 BEN.py 上?

以上是关于如何使用按钮小部件执行外部脚本?的主要内容,如果未能解决你的问题,请参考以下文章

如何在pyqt5 ui小部件代码中使用python脚本

单击按钮后如何通过服务执行小部件更新?

如何在点击外部关闭 QDialog 并在点击子小部件时关闭?

如何将文件位置存储到条目窗口小部件中--Tkinter

如何使用中心和列小部件内的对齐小部件在底部有两个按钮?

如何使用 tkinter Canvas 小部件制作按钮?