您好,我的问题是如何使命令a和b同时工作,我尝试了线程化,但线程立即执行命令,感谢advace的帮助强> 我是一个初学者程序员,所以任何关于这个问题的帮助都会有很大帮助,这个项目旨在成为一个刷新机器人,但我无法理解
import tkinter as tk
from time import sleep
from selenium import webdriver
def a():
driver1 = webdriver.Chrome(executable_path="/Users/user/Downloads/chromedriver")#your file
driver1.get(entry.get())
while True:
sleep(5)
driver1.refresh()
def b():
app.destroy()
def c():
entry.delete(0, tk.END)
app = tk.Tk()
app.title("Youtube Bot")
app.geometry("425x350")
app.resizable(False, False)
app.configure(bg="#333436")
textOne = tk.Label(
text = "Youtube Bot",
font = ("Helvetica", 28),
fg = "white",
bg = "#333436",
height = "1"
)
textOne.grid(pady = 10)
entry = tk.Entry(
app,
width = 25,
font = ("Arial", 15),
fg = "white",
bg = "#6b6d75"
)
entry.focus_set()
entry.grid(padx=10, pady=18 )
entry.get()
entry.insert(0, "Paste Video Link")
buttonRefresh = tk.Button(
text = "Delete",
font = ("Arial", 15),
width = 8,
command = c
)
buttonRefresh.grid(padx = 6)
buttonOne = tk.Button(
text = "Start process",
font =("Helvetica", 20),
height = "3",
width = "20",
command = a
)
buttonOne.grid()
buttonTwo = tk.Button(
text="Stop process",
font=("Helvetica", 20),
height="3",
width="20",
command = b
)
buttonTwo.grid(pady=20)
textOne.grid(row = 0, column = 1)
entry.grid(row = 1, column = 1)
buttonRefresh.grid(row = 1, column = 0)
buttonOne.grid(row = 2, column = 1)
buttonTwo.grid(row = 3, column = 1)
app.mainloop()
这是线程运行的地方,要调用此线程,您需要执行
a().start()
注意,我已经定义了
driver1
,所以我可以在调用函数b
时访问并关闭它我改变了这一行:
致:
因为:
a().start())
不仅仅是a
,您需要包含lambda
,因此只有在按下buttonOne
时才调用类a
李>我还将
driver1.close()
包含在函数b
中,以便在退出应用程序时关闭浏览器完整代码:
行
driver1 = webdriver.Chrome(executable_path="/Users/user/Downloads/chromedriver")
最初是在class a
之外定义的这意味着它看起来像这样
这意味着每次启动程序时
driver1
都会自动定义,导致浏览器打开所以我只是在{}中移动了{},这样当按下{}时,也就是定义{}时,浏览器就会打开
我还使
driver1
成为一个全局变量,这样您可以在调用函数时访问它:相关问题 更多 >
编程相关推荐