pyautogui请教哪个地方写错了?
python吧
全部回复
仅看楼主
level 6
wwacdroot 楼主
用tkinter画个简单的框,本意是点击按钮,开始运行。但我写完了,调试,tk界面没出来就开始运行了,然后运行完了,才跳出tk界面,这时怎么点击也没反应,只能退出重新调试,请教哪个地方写错了。
def aclick(x):
==time.sleep(1)
==m=0
==while m<x: #当m<传入的15时,就循环,大于等于15,那就停了。
====m=m+1
====pyautogui.moveTo(449,517) #在旁边点击一下OK
====time.sleep(0.4)
====pyautogui.click()
====time.sleep(0.4)
====pyautogui.press("end") #按下end键
。。。。。
root=Tk()
root.geometry('200x150')
e1=Entry(root)
e2=Entry(root)
e3=Entry(root)
b1=Button(root,text='开始',command=aclick(15)) #这里表示循环15次
e1.pack(padx=5,pady=5)
e2.pack(padx=5,pady=5)
e3.pack(padx=5,pady=5)
b1.pack(padx=5,pady=5)
root.mainloop()
python版本:3.8.2
2022年01月19日 06点01分 1
level 12
对tk了解不多
像这种界面操作,对输入检测可能在主线程,对输入的处理会派发给事件专用处理线程,从而完成对事件处理的安全性。
你在处理中使用了sleep进行测试,这很不合适,这是阻塞型io操作。
凡是这种界面卡顿的问题,不用想也是线程间相互影响,阻塞了主线程的画面刷新呈现
2022年01月19日 11点01分 2
谢谢指点。用sleep是想让程序别点太快了,那个def本来应该是点击了button,才开始运行,现在button还没点就开始运行,明天把界面部分写到def main试一下。
2022年01月19日 12点01分
1