私が書いたGUIで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 文字に色を付ける必要があります。
しかし、それは私が期待したようには機能しません。self.dir リストの 3 つのファイルでテストしました。最初のファイル出力の最初の 22 文字に色を付けます。次に、後に追加される他の 2 つのファイル出力については、3 番目のファイル全体に色を付けますが、2 番目のファイル出力にはまったく色を付けません。
を印刷しGetInsertionPoint()
てデバッグしました。正しいです。何が悪いのかわかりません。ヘルプの提案はありますか?