2016-05-02 33 views
0

我已经在python中使用Tkinter创建了一个程序,将普通文本转换为一些奇特的文本。自动将Tkinter文本小部件内容复制到剪贴板?

screenshot

我在想,如果有可能的输出一次“转换”按钮被按下自动复制到剪贴板。

这里是我的代码:

#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() 

请原谅大量的低效率,我还是相当多的小白,当谈到蟒蛇。

回答

2

此链接可以帮助您:

Link

from Tkinter import Tk 
r = Tk() 
r.withdraw() 
r.clipboard_clear() 
r.clipboard_append('i can has clipboardz?') 
r.destroy() 
+0

谢谢。我不确定r.destroy()或者我的情况win.destroy()是做什么的,但它关闭了窗口。我删除了那部分,它完美地工作。再次感谢! –

+0

**没问题:D **你可以标记为答案plz! –

+0

这真的很有帮助,你不知道让用户在Mac上用python 3手动复制东西到剪贴板是多么的困难 – madprogramer

0

下面是我在我的一个应用程序中使用的一个小函数,我将其附加到tkinter按钮。您需要将“INFO_TO_COPY”注释更改为您的实际数据源。

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() 

希望这有助于!

0

我从任何类型的文件之外,但如果我没有记错win.clipboard_append(输出)应该为你的情况下,在这里工作