Copying from clipboard using tkinter without displaying window
Solution 1
Window is created by tkinter.Tk()
(or other elements which need window) not by tk().mainloop()
. Mainloop keeps program working.
Maybe try Pyperclip or clipboard
Solution 2
This works fine except a blank tkinter window pops up every time this executes.
You can hide this window:
from tkinter import Tk
root = Tk()
root.withdraw()
number = root.clipboard_get()
Solution 3
AnnoyingWindow = Tk()
ClipBoard = AnnoyingWindow.clipboard_get()
AnnoyingWindow.destroy()
print(ClipBoard)
Solution 4
Here's a Python function based on this answer that replaces/returns clipboard text using Tkinter, a built-in Python module, without showing the window.
def use_clipboard(paste_text=None):
import tkinter # For Python 2, replace with "import Tkinter as tkinter".
tk = tkinter.Tk()
tk.withdraw()
if type(paste_text) == str: # Set clipboard text.
tk.clipboard_clear()
tk.clipboard_append(paste_text)
try:
clipboard_text = tk.clipboard_get()
except tkinter.TclError:
clipboard_text = ''
r.update() # Stops a few errors (clipboard text unchanged, command line program unresponsive, window not destroyed).
tk.destroy()
return clipboard_text
A small disadvantage with using this Tkinter based method is that it uses a quickly hidden window which isn't ideal but this shouldn't be noticeable.
This answer uses content from my original answer on the Stack Overflow question How to copy/get an image in the clipboard with Python (I accept Tkinter for text).
Solution 5
I had the same problem. This worked for me on windows 7, python 2.7. I now only get one window.
from Tkinter import *
root = Tk()
cliptext = root.clipboard_get()
lab=Label(root, text = cliptext)
lab.pack()
root.mainloop()
AllTradesJack
I'm a computer science major at Hebrew University of Jerusalem, Israel, most comfortable in Java but learning Python now. And loving it. Fork me on Github: https://github.com/joshsvoss
Updated on July 23, 2022Comments
-
AllTradesJack almost 2 years
Running Python 3.4 on Windows 7.
I need to copy what's stored in the clipboard to a variable in my python program. I've seen on Stack Overflow that that can be done either with
pywin32
ortkinter
. Sincetkinter
is part of the python standard library, I decided that that was the better of the two since the user won't have to install an external module. Here's the code for getting the clipboard data intkinter
:import tkinter number = tkinter.Tk().clipboard_get()
This works fine except a blank
tkinter
window pops up every time this executes.Why is this happening? Normally
tkinter
doesn't display anything untiltk().mainloop()
is run.Is there any way to avoid this window popping up? If not, I guess I'll just use
pywin32
.