使用python和tkinter在按钮单击上调用python脚本

时间:2014-11-10 20:31:46

标签: python-2.7 tkinter

我有一个python脚本,它具有向用户发送电子邮件的功能。我执行了这个脚本,它工作正常。在另一个python脚本中我只有一个按钮,所以当我点击这个按钮时,我想要另一个发送电子邮件执行的python脚本。我写了以下代码:

#!/usr/bin/python
import sys
import os
import Tkinter
import tkMessageBox
top=Tkinter.Tk()

def helloCallBack():
    os.system('SendEmail.py')

B=Tkinter.Button(top,text="hello",command= helloCallBack)
B.pack()
top.mainloop()

点击按钮后出现以下错误:

sh:1:SendEmail.py:找不到。

您能告诉我这个错误的原因是什么以及如何解决。谢谢。

6 个答案:

答案 0 :(得分:7)

我能够找到一种方法在按钮点击时调用另一个python脚本:

而不是使用os.system('SendEmail.py')我们需要使用os.system('python SendEmail.py')

答案 1 :(得分:2)

如果您的SendEmail.py位于同一位置,请使用os.system('SendEmail.py')。如果它位于其他位置,请使用os.system('python SendEmail.py')

答案 2 :(得分:0)

import sys
import os
from tkinter import *

window=Tk()

window.title("Running Python Script")
window.geometry('550x200')

def run():
    os.system('opencv_video.py')

btn = Button(window, text="Click Me", bg="black", fg="white",command=run)
btn.grid(column=0, row=0)

window.mainloop()

答案 3 :(得分:0)

#!/usr/bin/python
import sys
import sys
import os
import Tkinter
import tkMessageBox
top=Tkinter.Tk()

def helloCallBack():
    os.system('python SendEmail.py')

B=Tkinter.Button(top,text="hello",command= helloCallBack)
B.pack()
top.mainloop()

使用关键字“ python”运行命令

答案 4 :(得分:0)

作为一个业余爱好者,我真的没有资格提供建议。这就是我的方法。

我也想做这种事情。我大约有16个小python程序,它们制作html,复选框集,单选按钮集,文本输入字段,html表格等。

在另一个线程中,注释非常不赞成使用os.system调用。不知道为什么,但是我想我会尝试另一种方法。

我刚刚开始学习tkinter,因此我将每个“ makehtml”功能都运行在一个窗口中。

现在我想要一个带有按钮的主窗口。单击一个按钮,将打开另一个窗口,例如复选框窗口,或用于制作html的任何其他窗口。

我制作了一个模块:guiHTML.py我所有的'makehtml'函数都在其中。

在主窗口中导入guiHTML。

import os, sys    
# to import the files we need the paths
path = '/home/pedro/myPython/myModules/'    
# append the paths
sys.path.append(path)

import tkinter as tk
from functools import partial      
import guiHTML

然后,在主窗口中为每个按钮创建如下功能:

def openCheckboxes():
        #call the checkboxes function defined in the guiHTML module
        guiHTML.checkboxes()

然后,在复选框按钮中输入以下内容:

btn3 = tk.Button(frame1, text='insert checkboxes', command=openCheckboxes)
btn3.grid(columnspan=2, column=0, row=2, sticky='w', pady=10)

单击btn3,然后打开复选框窗口。

这对我有用,但是我不知道这是否是一个好方法。我只是一个月前开始使用tkinter。

如果有更好的方法可以做到这一点,我很高兴听到您的专家意见!

答案 5 :(得分:-1)

#!/usr/bin/python
import sys
import os
import tkinter as tk

root = tk.Tk()

def helloCallBack():
    os.system('call.py')
    #Keep_both_files_in_the_same_Folder
    b1=tk.Button(root, text="Calendar",bg="white",command=helloCallBack)
    b1.pack()
    root.mainloop()