Para obter a entrada do Tkinter na caixa de texto, você deve adicionar mais alguns atributos à .get()
função normal . Se tivermos uma caixa de texto myText_Box
, este é o método para recuperar sua entrada.
def retrieve_input():
input = self.myText_Box.get("1.0",END)
A primeira parte "1.0"
significa que a entrada deve ser lida a partir da linha um, caractere zero (ou seja: o primeiro caractere). END
é uma constante importada que é definida para a string "end"
. A END
parte significa ler até que o final da caixa de texto seja alcançado. O único problema com isso é que ele realmente adiciona uma nova linha à nossa entrada. Então, para consertar, devemos mudar END
para end-1c
(Obrigado Bryan Oakley ) O -1c
exclui 1 caractere, enquanto -2c
significaria excluir dois caracteres e assim por diante.
def retrieve_input():
input = self.myText_Box.get("1.0",'end-1c')
"end-1c"
ouEND+"1c"
, caso contrário, obterá a nova linha extra que o widget de texto sempre adiciona..get('1.0', 'end-1c')
end+1c
, isso acrescentaria uma nova linha ao código? Por último, Bryan e Honest Abe, muito obrigado a vocês por me ajudarem com minhas perguntas simples sobre Tkinter e Python. Você realmente me ajudou a obter uma compreensão mais profunda do idioma e sempre foi cortês, rápido e, o melhor de tudo, conhecedor. Tenho certeza de que seu conselho vai me ajudar enquanto eu mudo para o ensino médio e além!'end-1c'
são necessárias para que seja uma única string.'end'
é um alias para o índice após o último caractere. Então, se'end'
fosse'3.8'
,'end-1c'
seria'3.7'
. Eu quero recomendar novamente a revisão: Índices de widget de texto .Aqui está como fiz isso com o python 3.5.2:
com isso, quando eu digitei "blá blá" no widget de texto e apertei o botão, tudo o que eu digitei foi impresso. Então, acho que essa é a resposta para armazenar a entrada do usuário do widget de texto na variável.
fonte
Para obter a entrada do Tkinter na caixa de texto em Python 3, o programa de nível de aluno completo usado por mim é o seguinte:
fonte
Para obter a string em um
Text
widget, pode-se simplesmente usar oget
método definido para oText
qual aceita 1 a 2 argumentosstart
eend
posições de caracterestext_widget_object.get(start, end=None)
,. Se apenasstart
for passado eend
não for passado, retorna apenas o único caractere posicionado emstart
, seend
for passado também, retorna todos os caracteres entre as posiçõesstart
eend
como string.Existem também strings especiais, que são variáveis para o Tk subjacente. Um deles seria
"end"
outk.END
que representa a posição variável do último caractere noText
widget. Um exemplo seria retornar todo o texto no widget, comtext_widget_object.get('1.0', 'end')
outext_widget_object.get('1.0', 'end-1c')
se você não quiser o último caractere de nova linha.Demo
Veja a demonstração abaixo que seleciona os personagens entre as posições fornecidas com controles deslizantes:
fonte
Eu acho que esta é a melhor maneira-
Ao pressionar o botão, o valor no campo de texto seria impresso. Mas certifique-se de importar o ttk separadamente.
O código completo para um aplicativo básico é-
fonte
Eu enfrentei o problema de obter o texto inteiro do widget de Texto e a solução a seguir funcionou para mim:
Onde 1.0 significa primeira linha, o caractere zero (ou seja, antes da primeira!) É a posição inicial e END é a posição final.
Agradecimentos a Alan Gauld neste link
fonte
Digamos que você tenha um
Text
widget chamadomy_text_widget
.Para obter informações do,
my_text_widget
você pode usar oget
função.Vamos supor que você importou
tkinter
. Vamos definirmy_text_widget
primeiro, vamos torná-lo apenas um widget de texto simples.Para obter a entrada de um
text
widget, você precisa usar aget
função, ambos,text
e osentry
widgets têm isso.O motivo de salvá-lo em uma variável é para usá-lo no processo posterior, por exemplo, testando o que é a entrada.
fonte
Text
widgetget
requer pelo menos um argumento.