Environment
- Python 3.6.2
- Windows 10
The Problem
I use the tk method clipboard_append() to copy a string to the clipboard.
When my program is run from the Python interpreter data is copied to the clipboard correctly.
When run using "C:\Python36.exe myprogram.py" however, I get some weird behavior.
- If I paste the data while the program is still running, it works as expected.
- If I paste the data while the program is running, then close the program, I can continue to paste the data.
- If I close the program after copying but before pasting, the clipboard is empty.
Question
How do I make tk copy to the clipboard regardless of what happens to the containing window?
My Code
from tkinter import *
from tkinter import messagebox
url = 'http://testServer/feature/'
def copyToClipboard():
top.clipboard_clear()
top.clipboard_append(fullURL.get())
top.update()
top.destroy()
def updateURL(event):
fullURL.set(url + featureNumber.get())
def submit(event):
copyToClipboard()
top = Tk()
top.geometry("400x75")
top.title = "Get Test URL"
topRow = Frame(top)
topRow.pack(side = TOP)
bottomRow = Frame(top)
bottomRow.pack(side = BOTTOM)
featureLabel = Label(topRow, text="Feature Number")
featureLabel.pack(side = LEFT)
featureNumber = Entry(topRow)
featureNumber.pack(side = RIGHT)
fullURL = StringVar()
fullURL.set(url)
fullLine = Label(bottomRow, textvariable=fullURL)
fullLine.pack(side = TOP)
copyButton = Button(bottomRow, text = "Copy", command = copyToClipboard)
copyButton.pack(side = TOP)
featureNumber.focus_set()
featureNumber.bind("<KeyRelease>", updateURL)
featureNumber.bind("<Return>", submit)
top.mainloop()
Purpose of the Program
My company has a test server we use for new features. Every time we create a new feature we need to post a url to it on the test server. The urls are identical save for the feature number, so I created this python program to generate the url for me and copy it to the clipboard.
I can get this working if I comment out "top.destroy" and paste the url before manually closing the window, but I would really like to avoid this. In a perfect world I would press a shortcut, have the window pop up, enter my feature number, then just press enter to close the window and paste the new url, all without taking my hands off the keyboard.