2010-06-28 2 views
0

Я пытаюсь добавить функцию в python, которая копирует все содержимое двух текстовых виджетов. Как бы это сделать?Возможно ли одновременное копирование содержимого нескольких виджетов в Tkinter?

Псевдо Код:

text1.SelectAll() 
    C1 = text1.get(Copy) 

    text2.SelectAll() 
    C2 = text2.get(Copy) 

    Paste('Widget 1:\n\n' + C1 + 'Widget 2:\n\n' + C2) 

ответ

3

Просто делать (если у вас есть from Tkinter import * - Мне не нравится это, но многие используют его):

C1 = text1.get(1.0, END) 
C2 = text2.get(1.0, END) 

Теперь у вас есть две строки. Я не уверен, где что Paste предполагается поместить текст в - если вы имеете в виду, чтобы заменить предыдущее содержимое text2, например, просто сделать

text2.delete(1.0, END) 
text2.insert(END, "Whatever: %s and: %s" % (C1, C2)) 

Чтобы узнать больше о Tkinter управления текста, чтения this chapter в онлайн-магазине Tkinter от effbot.

+2

вы должны получить «end-1c», так как Tk всегда добавляет дополнительную строку новой строки как самый последний символ в текстовом виджете. использование 1.0 и «end-1c» - это канонический способ получения всех данных в виджетах. –

+0

@ Брайан, справа, если вы не хотите, чтобы конечная новая линия - хорошая точка, исправляющая соответственно, спасибо и +1 ;-). –

 Смежные вопросы

  • Нет связанных вопросов^_^