0

tkinter を使用しているときに Python でインデックスを見つけようとしていますが、この問題が発生し続けています。行のインデックスが 1 から始まり、列のインデックスが 0 から始まることはわかっていますが、1.9 の後にインデックスを見つけようとすると、1.9 の後に 2.0 になるのは理にかなっていますが、そうではありません。例えば

self.t1 = Text(self, width = 35, height = 5, wrap = WORD)
self.t1.grid(row = 0, column = 0, sticky = W)
self.t1.insert(1.0, 'Q')
self.t1.insert(1.1, 'W')
self.t1.insert(1.2, 'E')
self.t1.insert(1.3, 'R')
self.t1.insert(1.4, 'T')
self.t1.insert(1.5, 'Y')
self.t1.insert(1.6, 'U')
self.t1.insert(1.7, 'I')
self.t1.insert(1.8, 'O')
self.t1.insert(1.9, 'P')
self.t1.insert(1.?, 'A') #What index comes after 1.9 but not 2.0
                         #because that would mean it'd be on a new line. 
self.t1.get(1.?, 1.?)    #I'm not sure what index I'm looking for to find 'A'

また、小数点以下 3 桁を使用しようとすると、たとえば1.01. 正常に動作しますが1.08、インデックスとして取得すると、次のエラーが発生します。

self.tk.call((self._w, 'insert', index, chars) + args)
_tkinter.TclError: bad text index "1.08"

私も同じエラーが発生し1.09ますが、そうではありません1.10。何故ですか?

それらはおそらく非常に簡単に理解できますが、私には方法がまったくわかりません。

ありがとう。

4

1 に答える 1

1

Tkinter Text ウィジェットのインデックスは 10 進数のように見えますが、実際には文字列であるため、値を引用符で囲む必要があります。ドットで区切られた 2 つの部分「line.column」で構成されているため、「1.9」の次の列は「1.10」です。「2.0」は 2 行目の一番左の列です。

于 2013-06-16T14:00:00.047 に答える