由于西班牙语StakOverFlow中没有人还没有回答我,所以我在这里问。我来自ARG。我正在进行海量文档上传自动化。我用tkinter制作的第一个小部件询问用户要上载到网络的文档类型。完成此过程后,我想抛出另一个小部件来问同样的问题。问题是我不知道如何编写该代码。我还没有学会如何处理课程。我的小部件的代码是网络示例的副本,其格式符合我的规格。
from Tkinter import Tk, Label, Button
class DocumentTypeOption:
def __init__(self, master):
self.master = master
master.iconbitmap("bigpython.ico")
master.minsize(280,150)
master.geometry("280x150")
master.title("DOCUMENT TYPE")
self.label = Label(master, text="SELECT THE DOCUMENT TYPE")
self.label.pack()
self.tipo1_button = Button(master, text="Tipo1", command=self.opcion_tipo1)
self.tipo1_button.pack()
self.tipo2_button = Button(master, text="Tipo2", command=self.opcion_tipo2)
self.tipo2_button.pack()
def funciontipo1(self):
def subirtipo1():
"things to upload doc type1"
time.sleep(0.5)
root.destroy()
time.sleep(1)
subirtipo1()
"SHOULD THE WIDGET BE CALLED HERE?"
def funciontipo2(self):
def subirtipo1():
"things to upload doc type2"
time.sleep(0.5)
root.destroy()
time.sleep(1)
subirtipo2()
"SHOULD THE WIDGET BE CALLED HERE?""
root = Tk()
my_gui = OpcionTipoDeDocumento(root)
root.mainloop()
一种类型的文档上载后,我需要再次抛出该小部件,以询问用户是否要继续使用另一种类型的文档。
答案 0 :(得分:2)
有一些选择。您可以简单地将Tkinter窗口保持打开状态,并询问用户是否要加载另一个文件。您还在tkinter实例中使用sleep()
。您不能在Tkinter中使用sleep()
。还有另一种称为after()
的方法,该方法用于设置定时事件以代替对sleep()
的使用。在这种情况下,我认为您还是不需要延迟。
这是一个简单的示例,其中使用tkinter类和doc的1个函数,并使用1个函数询问是否要加载另一个。
# import tkinter as tk # for python 3.X
# from tkinter import messagebox # for python 3.X
import Tkinter as tk
import tkMessageBox as messagebox
class DocumentTypeOption(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self.iconbitmap("bigpython.ico")
self.minsize(280,150)
self.geometry("280x150")
self.title("DOCUMENT TYPE")
self.label = tk.Label(self, text="SELECT THE DOCUMENT TYPE")
self.label.pack()
self.tipo1_button = tk.Button(self, text="Tipo1", command=lambda: self.do_stuff("Tipo1"))
self.tipo1_button.pack()
self.tipo2_button = tk.Button(self, text="Tipo2", command=lambda: self.do_stuff("Tipo2"))
self.tipo2_button.pack()
def do_stuff(self, doc_type):
# things to upload doc type1
# you can do this part with a single function as long as you check the doc type first.
print(doc_type) # just to verify buttons are working.
self.check_next(doc_type)
def check_next(self, doc_type):
x = messagebox.askyesno("DOCUMENT OPTION", "Would you like to load another {}?".format(doc_type))
if x != True:
self.destroy()
my_gui = DocumentTypeOption()
my_gui.mainloop()