首页 > 解决方案 > 从 tkinter 上的按钮按下启动另一个脚本

问题描述

所以我试图在 tkinter 上创建一个运行另一个脚本的按钮。我不确定这是否是最佳方式,而不仅仅是将我拥有的任何内容添加到我想要运行的脚本中,但我想看看这是否可能供将来参考。到目前为止,这就是我的脚本中的内容。关于如何解决这个问题的任何想法?

import tkinter as tk
from tkinter import *
from tkinter import simpledialog
import uploadtest as ut

class Initial(simpledialog.Dialog):
    def body(self, master):
#input fields for username and passwords
        Label(master, text="Scripts").grid(row=1, column=1),

#Buttons
        self.utz = ut

        self.b1 = Button(master, text = "Script1", bg="grey", command=self.utz)
        self.b1.grid(row=7, column=1, ipadx=75)

root = tk.Tk()
root.withdraw()
d = Initial(root)

任何帮助将不胜感激。我知道我可以将这个类添加到另一个脚本并使用按钮命令,这会更容易,但我只是好奇这种方法是否可行,因为我将向其中添加多个脚本,我想拥有我的脚本分开了。似乎当我尝试在此脚本上导入 uploadtest.py 时,它只是运行该脚本而不是这个脚本。

标签: pythontkinter

解决方案


如果您想再次使用它以供将来参考,您可以将您的修改uploadtest.py为一个函数

def ut():
    print("your")
    print("script")
    print("here")

然后在脚本中使用它from uploadtest import *并像脚本中的普通函数一样调用它

import tkinter as tk
from tkinter import *
from tkinter import simpledialog
from uploadtest import *
class Initial(simpledialog.Dialog):
    def body(self, master):
#input fields for username and passwords
        Label(master, text="Scripts").grid(row=1, column=1),

#Buttons
        self.utz = ut

        self.b1 = Button(master, text = "Script1", bg="grey", command=self.utz)
        self.b1.grid(row=7, column=1, ipadx=75)

root = tk.Tk()
root.withdraw()
d = Initial(root)

如果这不是您想要的,请发表评论


推荐阅读