Python textctrl setstyle не может правильно прочитать точку вставки - PullRequest
1 голос
/ 15 июня 2011

Я использую 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() для отладки. Это правильно. Я не знаю, что не так. Любые предложения о помощи?

1 Ответ

0 голосов
/ 15 июня 2011

Fixed. Назовите другую переменную перед AppendText для GetInsertionPoint (). В противном случае он получит конец файла.

...