Текстовое поле не удаляет автоматически себя - PullRequest
1 голос
/ 05 июля 2019

Я хочу, чтобы текстовое поле автоматически удаляло предыдущий вывод, чтобы я мог ввести полное предложение без печати каждой буквы в текстовое поле. Однако он повторяется до самого конца, поэтому, когда я нажимаю кнопку «Сохранить», он записывает каждую строку в буфер обмена.

Я пытался использовать текст Tkinter delete: text.delete (1.0, END). Однако ничего не удаляется.

class ExamplePanel(wx.Panel):
    def __init__(self, parent):
        wx.Panel.__init__(self, parent, size=(3000,2000))
        self.cipherText = wx.StaticText(self, label="Ciphered Text: ", pos=(20, 30))

    #A multiline TextCtrl- Shows the events in the program. 
    #I think this might be where the problem is but I do not know how to 
    #get it to only print once, perhaps after the user hits "enter" or something.
        self.logger = wx.TextCtrl(self, pos=(300,20), size=(200,300), style=wx.TE_MULTILINE | wx.TE_READONLY)  

...

        self.encrypt = wx.StaticText(self, label="Encryptor: ", pos=(20,60))
        self.encryptEdit = wx.TextCtrl(self, value="", pos=(150, 60), size=(140,-1))
        self.Bind(wx.EVT_TEXT, self.EncText, self.encryptEdit)
        self.Bind(wx.EVT_CHAR, self.EncChar, self.encryptEdit)

...

    def EncText(self,event):
        result = ''
        message = event.GetString()
        for i in range(0, len(message)):
            result = result + chr(ord(message[i]) - 2)
        result = result.replace(chr(30), ' ')
        print(result + '\n\n')
        self.logger.AppendText(result + '\n\n')

Как описано выше, моя цель состоит в том, чтобы он очищал текстовое поле при каждом новом нажатии клавиши, чтобы оно не повторялось до конца. Вот как это выглядит в настоящее время: Токовый выход

1 Ответ

1 голос
/ 05 июля 2019

Вместо .ApppendText(result + '\n\n') попробуйте .SetValue(result + '\n\n').Он должен заменить текст в TextCtrl


См. Документ для wx.TextCtrl .wx.TextCtrl основан на wx.TextEntry, поэтому некоторые функции для TextCtrl вы можете найти в документе для wx.TextEntry .Также есть SetValue().

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