请教关于tkinter添加开始 结束 暂停 继续四个按钮控制程序运行
请教大神我想设置 开始 结束暂停继续四个按钮 来控制startpz() 这个函数的运行 请问怎么弄谢谢def startpz()
for i in rows:
if .......
break
def star():
global cx
cx = True
startpz()
def stop():
top.destroy()
if __name__=="__main__":
import tkinter, time
top = tkinter.Tk()
cx = True
top.title("自动")
thelable=tkinter.Label(top,text="需要结束程序,请先按下空格暂停")
top.geometry('300x150') # Size 200, 200
startButton = tkinter.Button(top, height=2, width=20, text ="Start",
command = star)
stopButton = tkinter.Button(top, height=2, width=20, text ="Stop",
command = stop)
thelable.pack()
startButton.pack()
stopButton.pack()
top.mainloop() 本帖最后由 qq1151985918 于 2022-4-20 22:34 编辑
别的暂停可能还麻烦些,tkinter简单,只要弹出一个对话框阻塞住进程就好了
简单敲了一个样例
from tkinter import Tk, StringVar, Label, Button
from tkinter.messagebox import askokcancel
from threading import Thread
from time import sleep
class App(Tk):
def __init__(self):
super().__init__()
self.geometry('100x120')
self.resizable(0, 0)
self.switch = ''
self.set_label = StringVar()
Label(self, textvariable=self.set_label).pack()
Button(self, text='开始', command=self.run).pack()
Button(self, text='暂停', command=lambda: self.set_switch('pause')).pack()
Button(self, text='停止', command=lambda: self.set_switch('stop')).pack()
self.mainloop()
def run(self):
def _run():
x = 0
while True:
if self.switch == 'run':
sleep(0.2)
x += 1
self.set_label.set(str(x))
print(x)
elif self.switch == 'pause':
choose = askokcancel('提示:', '已暂停,点击确定继续,点击取消停止!')
if choose:
self.switch = 'run'
else:
self.switch = 'stop'
else:
return
self.switch = 'run'
t = Thread(target=_run)
t.setDaemon(True)
t.start()
def set_switch(self, x):
self.switch = x
if __name__ == '__main__':
app = App() qq1151985918 发表于 2022-4-20 22:32
别的暂停可能还麻烦些,tkinter简单,只要弹出一个对话框阻塞住进程就好了
简单敲了一个样例
非常感谢 就是要这个效果 本帖最后由 cancry 于 2022-4-21 17:35 编辑
qq1151985918 发表于 2022-4-20 22:32
别的暂停可能还麻烦些,tkinter简单,只要弹出一个对话框阻塞住进程就好了
简单敲了一个样例
弱弱再问一句 我另外有一段自动操作excel表格 遍历行的函数 怎么把功能嵌套进去,能达到暂停 继续的效果?或者不需要按钮 只是通过键盘 空格键就能控制暂停和继续?谢谢!
def startpz():
wb=vb.load_workbook('2月序时账(2).xlsx')
# 打开活动工作表
ws=wb.active
for row in list(ws.rows):
# 按行 把每列的值 赋值到L数组
l=
while True:
if l is not None:
if l == '财务':
pyperclip.copy(l)
pyautogui.press('backspace',interval=0.35)
pyautogui.hotkey('ctrl','v',interval=0.45)
pyautogui.press('enter',interval=0.25)
else:
break
else:
break
页:
[1]