繁体   English   中英

自动将Tkinter文本小部件内容复制到剪贴板?

[英]Automatically copy Tkinter text widget content to clipboard?

我使用Tkinter在python中创建了一个程序,该程序将普通文本转换为一些精美的文本。

屏幕截图

我想知道一旦按下“转换”按钮,是否可以将输出自动复制到剪贴板。

这是我的代码:

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

请原谅效率低下,在使用python时,我还是很菜鸟。

该链接可以帮助您:

链接

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

这是我在一个应用程序中使用的一个小功能,该功能已附加到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()

希望这可以帮助!

我没有任何文档,但是如果我没记错的话,win.clipboard_append(output)应该适合您的情况

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM