Reputation: 23
I have created a program in python using Tkinter that converts normal text, into some fancy text.
I was wondering if it is possible for the output to be automatically copied to the clipboard once the 'Convert' button has been pushed.
Here is my code:
#Importing TKinter module
from tkinter import *
#Setting up the GUI window
win = Tk()
win.title("Font Converter")
win.resizable(0,0)
#Converting
def replace():
text = entry.get("1.0",END)
replacements = {
#Upper case letters
"A": "A",
"B": "B",
"C": "C",
"D": "D",
"E": "E",
"F": "F",
"G": "G",
"H": "H",
"I": "I",
"J": "J",
"K": "K",
"L": "L",
"M": "M",
"N": "N",
"O": "O",
"P": "P",
"Q": "Q",
"R": "R",
"S": "S",
"T": "T",
"U": "U",
"V": "V",
"W": "W",
"X": "X",
"Y": "Y",
"Z": "Z",
#Lower case letters
"a": "a",
"b": "b",
"c": "c",
"d": "d",
"e": "e",
"f": "f",
"g": "g",
"h": "h",
"i": "i",
"j": "j",
"k": "k",
"l": "l",
"m": "m",
"n": "n",
"o": "o",
"p": "p",
"q": "q",
"r": "r",
"s": "s",
"t": "t",
"u": "u",
"v": "v",
"w": "w",
"x": "x",
"y": "y",
"z": "z",
#Numbers
"1": "1",
"2": "2",
"3": "3",
"4": "4",
"5": "5",
"6": "6",
"7": "7",
"8": "8",
"9": "9",
"0": "0",
}
text = "".join([replacements.get(c, c) for c in text])
output.delete('1.0', END)
output.insert(END, str(text))
#Text Variables
enter = StringVar()
#Creating the widgets
l1 = Label(win, text="Enter text:")
entry = Text(win, width=50, height=3, wrap=WORD)
button = Button(win, text="Convert", width=20)
l2 = Label(win, text="Converted text:")
output = Text(win, width=50, height=3, wrap=WORD)
#Positioning the widgets
l1.grid(row=1, column=1, padx=5, sticky=W)
entry.grid(row=2, column=1, columnspan=2, padx=5, pady=(0,10))
button.grid(row=3, column=1, columnspan=2, pady=5)
l2.grid(row=4, column=1, padx=5, sticky=W)
output.grid(row=5, column=1, columnspan=2, padx=5, pady=(0,10))
#Button activation
button.configure(command=replace)
#So the program is on repeat
win.mainloop()
Please excuse the massive inefficiency, I'm still quite a noob when it comes to python.
Upvotes: 2
Views: 16293
Reputation: 1
I'm away from any sort of documentation but if I recall correctly win.clipboard_append(output) should work for your case here
Upvotes: 0
Reputation: 126
This link can help you:
from Tkinter import Tk
r = Tk()
r.withdraw()
r.clipboard_clear()
r.clipboard_append('i can has clipboardz?')
r.destroy()
Upvotes: 11
Reputation: 117
Here's a little function that I used in one of my apps, which I attached to a tkinter button. You will need to change the "INFO_TO_COPY" comment to your actual data source.
def copy_button():
clip = Tk()
clip.withdraw()
clip.clipboard_clear()
clip.clipboard_append(INFO_TO_COPY) // Change INFO_TO_COPY to the name of your data source
clip.destroy()
Hope this helps!
Upvotes: 1