似乎有问题,如果剪贴板被操纵,并且程序很快关闭太快。下面的程序为我工作,但是当root.after
的呼叫仅使用一毫秒的延迟时是不可靠的。其他可能性进行了尝试,但向下跌破代码应工作:
import random
import string
import tkinter
def main():
root = tkinter.Tk()
root.after_idle(run_code, root)
root.after(100, root.destroy)
root.mainloop()
def run_code(root):
root.withdraw()
root.clipboard_clear()
root.clipboard_append(''.join(random.sample(string.ascii_letters, 10)))
print('Clipboard is ready.')
if __name__ == '__main__':
main()
以下是该计划的一个温和的更有用的版本,并表明你可以多次调用root.after_idle
以顺序方式运行代码。它的设计主要用于处理命令行参数并将它们发送到您的剪贴板:
import sys
import tkinter
def main(argv):
root = tkinter.Tk()
root.after_idle(root.withdraw)
root.after_idle(root.clipboard_clear)
root.after_idle(root.clipboard_append, ' '.join(argv[1:]))
root.after_idle(print, 'The clipboard is ready.')
root.after(100, root.destroy)
root.mainloop()
return 0
if __name__ == '__main__':
sys.exit(main(sys.argv))
如果在文本复制到剪贴板后不想销毁应用程序,该怎么办?但是,如果用户在将文本复制到剪贴板后不久就退出程序,那么应用程序就会被销毁。 –