回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个基于Tkinter的GUI和一系列按钮。我希望其中一个按钮在按下时从另一个脚本执行命令-<code>testExecute.py</code>(下面包含两个脚本的代码)。你知道吗</p>
<p>现在,当我启动GUI时,外部脚本函数似乎是在<code>import</code>上执行,而不是在我按下按钮时执行(按下按钮似乎也不会执行该函数)。我做了一些研究,并在<code>testExecute.py</code>中包含了<code>if __name__ == "__main__":</code>位,但它仍然在主脚本的导入时执行。有什么想法吗?你知道吗</p>
<p>回答下面的问题:如果我想把一个参数传递给函数,我该怎么办?因为如果我包含参数,函数会在导入时再次执行。但如果我不包括参数,我会在按下按钮时出错。你知道吗</p>
<p>主脚本:</p>
<pre><code>from tkinter import *
from tkinter.ttk import *
import testExecute as testEx
class mainGUI(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("GUIV0.1")
self.pack(fill=BOTH, expand=True)
self.columnconfigure(1, weight = 1)
self.columnconfigure(3, pad = 7)
self.rowconfigure(3, weight = 1)
self.rowconfigure(5, pad = 7)
lbl = Label(self, text = "Windows")
lbl.grid(sticky = W, pady=4, padx=5)
area = Text(self)
area.grid(row=1, column=0, columnspan=2, rowspan=4, padx=5, sticky=E+W+S+N)
abtn = Button(self, text="Activate", command = testEx.testFunc())
abtn.grid(row=1, column=3)
cbtn = Button(self, text="Close")
cbtn.grid(row=2, column=3, pady=4)
hbtn = Button(self, text="Help")
hbtn.grid(row=5, column=0, padx=5)
obtn = Button(self, text="OK")
obtn.grid(row=5, column=3)
def main():
root = Tk()
app = mainGUI(root)
root.mainloop()
if __name__ == '__main__':
main()
</code></pre>
<p>你知道吗测试执行.py地址:</p>
<pre><code>def testFunc():
print("Test test test")
print("I do nothing, if you see this text, I am hiding in your code!")
if __name__ == "__main__":
testFunc()
</code></pre>