文本框不会自动删除自己

时间:2019-07-05 14:17:15

标签: python user-interface

我希望文本框自动删除以前的输出,因此我可以输入完整的句子,而不必在文本框上打印每个字母。但是,它会一直重复下去,因此当我按下保存按钮时,它会将每一行记录到剪贴板中。

我尝试使用Tkinter文本删除: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')

如上所述,我的目标是每当进行一次新的击键操作时都将其清空文本框,以使其不再重复下去。当前是这样的:Current Output

1 个答案:

答案 0 :(得分:1)

尝试使用.ApppendText(result + '\n\n')而不是.SetValue(result + '\n\n')。它应该替换TextCtrl

中的文本

有关wx.TextCtrl的信息,请参阅文档。 wx.TextCtrl基于wx.TextEntry,因此您可以在文档中找到wx.TextEntryTextCtrl的某些功能。还有SetValue()