【问题标题】:Unable to pass an argument to a python script invoked by a Tkinter Function无法将参数传递给由 Tkinter 函数调用的 python 脚本
【发布时间】:2014-08-08 11:42:35
【问题描述】:

我无法在为 Tkinter 中创建的按钮定义的函数中调用另一个 python 脚本。

代码如下:

import subprocess
from Tkinter import *

def select (hf):
   subprocess.Popen("<MyScript.py> hf")

root = Tk()

var_hf = StringVar(root)
var_hf.set('Default')

option_hf = OptionMenu(root, var_hf, *["A", "B", "C"])
option_hf.pack()

button = Button (root, text = "Select", command= lambda: select(var_hf.get())
button.pack()

root.mainloop()

当我按下“选择”按钮时,我收到一条错误消息,指出“hf”未被识别为有效变量(“hf”被称为 MyScript.py 的参数)。

您知道为什么与 Button 关联的函数无法将 var_hf.get() 获取的值分配给“hf”吗?

提前谢谢你,

G.

【问题讨论】:

    标签: tkinter subprocess


    【解决方案1】:

    您实际上是将字符串“hf”传递给&lt;MyScript.py&gt;。我猜这不是你打算做的。一个简单的解决方案是这样做:

    subprocess.Popen("<MyScript.py> %s" % hf)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 2016-09-02
      相关资源
      最近更新 更多