使用Tkinter,线程化和After方法

问题描述 投票:0回答:1

im在python中使用tkinter从事硒项目。我想一次执行许多硒任务(最多可以执行100次),所以我使用线程来完成此目标,但是由于我需要所有单独的硒任务要等待几秒钟而遇到一个问题在指令之间,我使用了'.after'方法,但是由于某种原因我的程序仍然冻结,我做了很多研究,但似乎还找不到答案。是否没有办法在Python中使用tkinter,线程和某种睡眠方式?我需要切换到多处理吗?但是我需要所有硒处理程序在相同的2分钟内完成,每个处理过程大约需要一分钟。(例如,假设我在6:00开始执行100个1分钟的处理程序,那么所有任务都需要在6:02之前完成)] >

我创建了模仿我的Selenium脚本的最小代码,因此它更易于阅读,在这里是:

from tkinter import *
import tkinter as tk
import time
root = tk.Tk()
root.geometry('700x700')
import threading
class Make:
    def __init__(self,num):
        self.num = num.get()
        Label(root,text='HELLO WORLD WILL PRINT: '+str(self.num)+' times, press go to confirm').pack()
        Button(root, text='go', command=lambda: self.starting()).pack()

    def starting(self):

        for count in range(self.num):
            t = threading.Thread(target=gogogo())
            t.start()

def gogogo():
    tk.Label(root,text='HELLO WORLD').pack()
    root.after(2000,print('Please wait 2 seconds'))
    tk.Label(root,text='You are inside my world').pack()


Label(root,text='How many times should I print: HELLO WORLD').pack()

num = IntVar()
Entry(root, textvariable=num).pack()

Button(root, text='Start', command=lambda: Make(num)).pack()

root.mainloop()

im在python中使用tkinter从事硒项目。我想一次执行许多硒任务(最多可以执行100次),所以我使用线程来完成此目标,但是我遇到了一个问题,...

python selenium oop tkinter sleep
1个回答
0
投票

您的主要问题是,类似于after()Thread()command=仅需要函数名称,而无需(),稍后它将使用()执行它。

© www.soinside.com 2019 - 2024. All rights reserved.