Как скопировать данные из одного виджета Tkinter Text в другой? - PullRequest
4 голосов
/ 13 февраля 2010
from Tkinter import *

root = Tk()
root.title("Whois Tool")

text = Text()
text1 = Text()

text1.config(width=15, height=1)
text1.pack()

def button1():
    text.insert(END, text1)

b = Button(root, text="Enter", width=10, height=2, command=button1)
b.pack()

scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
text.config(width=60, height=15)
text.pack(side=LEFT, fill=Y)
scrollbar.config(command=text.yview)
text.config(yscrollcommand=scrollbar.set)

root.mainloop()

Как добавить данные из текстового виджета в другой текстовый виджет?

Например, я пытаюсь вставить данные в text1 в text, но это не работает.

1 Ответ

4 голосов
/ 13 февраля 2010

Вы пытаетесь вставить ссылку Text в конец другого виджета Text (не имеет особого смысла), но на самом деле вы хотите скопировать содержимое виджета Text в другой :

def button1():
    text.insert(INSERT, text1.get("1.0", "end-1c"))

На мой взгляд, не интуитивный способ сделать это. "1.0" означает строку 1, столбец 0. Да, строки с 1 индексом, а столбцы с 0 индексами.


Обратите внимание, что вы не можете импортировать весь пакет Tkinter, используя from Tkinter import *. Это может привести к путанице в будущем. Я бы порекомендовал использовать:

import Tkinter
text = Tkinter.Text()

Другой вариант:

import Tkinter as tk
text = tk.Text()

Вы можете выбрать короткое имя (например, "tk") по вашему выбору. В любом случае, вам следует придерживаться одного механизма импорта библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...