繁体   English   中英

在执行 tkinter 剪贴板方法后执行 Ctrl+c 时程序冻结。 为什么会这样以及如何避免它?

[英]Program freezes when I perfrorm Ctrl+c after executing tkinter clipboard methods. Why it does that and how to avoid it?

我发现在 clipboard_append 或 clipboard_clear tkinter 方法之后使用 Ctrl+c 后,我会冻结几秒钟。

我想像这样使用它:

from tkinter import Tk

t = Tk()

def retriveClipboard(clear=False):
    try:
        data = tk.clipboard_get()
        if clear:
            tk.clipboard_clear()
            tk.clipboard_append('')
    except Exception as e:
        data = ''
    return data

def main():
    for coord in coords:
        mouseMove(coord)
        press('Ctrl','c', click=True)
        print(retriveClipboard(True))

如果您在控制台中使用 ctrl+c 和 tkinter 进行测试,您每次都会得到完全相同的滞后。

您可以测试此代码(请务必按照评论建议进行中间 ctrl+c)

from tkinter import Tk
t= Tk()
# copy something using Ctrl c
t.clipboard_get()
t.clipboard_clear()
t.clipboard_append('')
# copy something using Ctrl c
# experience lag here

我不想每次都在函数中创建一个新的 Tk 对象,因为它需要太多时间,不是吗?

Edit1:所以在上面的例子中,如果我们排除 t.clipboard_get() 行,它似乎不会冻结。

Edit2:在测试示例中,只有当我从程序运行的同一个控制台 Ctrl+c 时它才会冻结。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM