Читать по одной строке из текстового поля tkinter - PullRequest
0 голосов
/ 20 сентября 2019

Я могу читать по одной строке за раз из поля ввода и отображать ее в новом окне, но мне нужно перейти к следующей строке кода.

Вот текстовые поля вGUI

    self.sourcecode = Text(master, height=8, width=30)
    self.sourcecode.grid(row=1, column=1, sticky=W)

    self.nextline = Button(master, text="Next Line", fg="orange", command=lambda:[self.nextLine(self.intcount), self.lexicalResult()])
    self.nextline.grid(row=12, column=1, sticky=E)

    self.lexicalresult = Text(master, height=8, width=30)
    self.lexicalresult.grid(row=1, column=3, sticky=W)

Это мои функции для копирования из одного ящика в другой (вывод insert() в функцию lexicalResult())

def nextLine (self, intcount):
    print("Reading from source")
    self.linenumber.delete('1.0', END)
    self.intcount = self.intcount + 1
    self.linenumber.insert('0.0', self.intcount)
    self.retrieve_input()

def retrieve_input(self):
    lines = self.sourcecode.get('1.0', '2.0') #I need to take this and move to the next line but i am new to python and don't know what functions there are or their arguments
    self.lexicalresult.insert('1.0', lines)

def lexicalResult (self):
    print("Printing to result")

1 Ответ

0 голосов
/ 21 сентября 2019

Вы можете прочитать одну строку текста, используя модификатор "lineend" в индексе.Например, чтобы получить всю строку 1, вы можете использовать что-то вроде этого:

text.get("1.0", "1.0 lineend")

Это будет все, что в строке , кроме завершающего символа новой строки .Если вам нужен завершающий символ новой строки, получите всего один символ больше:

text.get("1.0", "1.0 lineend+1c")

Чтобы удалить всю строку, вы можете использовать те же самые индексы и передать их методу delete.

В качестве более общего правила для любого индекса для вычисления начала следующей строки вы можете использовать что-то вроде этого:

next_line = text.index("{} lineend+1c".format(index))

Метод index преобразует индекс вэто каноническая форма.Модификатор lineend меняет индекс на конец строки, а +1c перемещает его на один символ дальше.

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