Должно быть, я использую неправильные термины, потому что не могу найти то, что я ищу. Любая помощь оценивается.wxpython textctrl печать на определенную строку
Как написать конкретную строку внутри textctrl?
В настоящее время моя программа обрабатывает файлы, при обработке файлы перечисляются в тексте ctrl. Я бы хотел добиться этого. Перечислите файлы в textctrl с обработкой текста после его имени. При обработке мне нужно будет переписать в ту же самую позицию, но на этот раз заменить обработку слова словом. Мне также нужно запомнить, какой файл печатается на какой строке. Я использую threading, поэтому файлы не обязательно будут завершены в том порядке, в котором они были открыты, из-за их разных размеров.
Спасибо за помощь!
# This function opens files for processing.
def Encrypt(self, event):
"""
Runs the thread
"""
self.file2process = ""
dlg = wx.FileDialog(self, "Select files", self.file2process, "", "*.*", wx.OPEN |wx.MULTIPLE | wx.CHANGE_DIR)
if dlg.ShowModal() == wx.ID_OK:
self.file2process = dlg.GetPaths()
for fname in self.file2process:
EncryptThread(fname)
# This is one of two functions that I would need to modify but same prociple would apply to both so only including this one.
def run(self):
"""Run Worker Thread."""
# This is the code executing in the new thread.
keys = {char: chr(i) for i, char in enumerate(self.key)}
with open(self.fname,'r') as f:
with open(self.fname + '.tmp', 'w') as temp:
for data in f:
match = ''.join([keys[char] for char in data if char in keys])
temp.write(match)
os.remove(self.fname)
os.rename(self.fname + '.tmp', self.fname)
msg = self.fname
wx.CallAfter(Publisher().sendMessage, "update", msg)
# This function updates the textctrl.
def updateDisplay(self, msg):
"""
Receives data from thread and updates the display
"""
data = msg.data + "\n"
self.updateText.WriteText(data)
Привет многожен, спасибо вам за помощь. Отредактированный пост, чтобы включить код. Клинтон. –