Я использую python textctrl в графическом интерфейсе, который я написал. После прочтения нескольких файлов я публикую содержимое файла в textctrl. Поскольку все они в одинаковом формате, я попытался раскрасить первые несколько символов, чтобы отметить начало вывода каждого файла. Я сделал следующее:
for file in self.dir:
f = open(file, 'r')
strInfo = f.read()
if self.dir.index(file) == 0:
self.textctrl.SetValue(strInfo)
self.textctrl.SetStyle(self.textctrl.GetInsertionPoint(),
self.textctrl.GetInsertionPoint()+22, wx.TextAttr("RED", "YELLOW"))
else:
self.textctrl.AppendText(strInfo)
self.textctrl.SetStyle(self.textctrl.GetInsertionPoint(),
self.textctrl.GetInsertionPoint()+22, wx.TextAttr("RED", "YELLOW"))
f.close()
По сути, этот код должен раскрашивать первые 22 символа для каждого выходного файла.
Но это не работает, как я ожидал. Я тестировал 3 файла в списке self.dir. Цвета первых 22 символов первого файла вывода. Затем для двух других выходных файлов, которые добавляются после, он окрашивает всю часть третьего файла, но не окрашивает вообще второй выходной файл.
Я распечатал GetInsertionPoint()
для отладки. Это правильно. Я не знаю, что не так. Любые предложения о помощи?