似乎有問題,如果剪貼板被操縱,並且程序很快關閉太快。下面的程序爲我工作,但是當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))
如果在文本複製到剪貼板後不想銷燬應用程序,該怎麼辦?但是,如果用戶在將文本複製到剪貼板後不久就退出程序,那麼應用程序就會被銷燬。 –