0
tkinter를 사용할 때 파이썬에서 인덱스를 찾으려고하는데이 문제가 계속 발생합니다. 나는 라인 인덱스가 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
에 대해 동일한 오류가 발생합니다. 왜 그런가요?
그들은 실제로 알아 내기가 쉽지만 심각한 것은 잘 모릅니다.
감사합니다.
맞습니다. '1.1'의 뒤에 무한대의 0이 있기 때문에 파이썬은 '1.10'을 '1.1'로 해석합니다. 따라서 '1.10000000'을 입력하면 '1.1'과 거의 같습니다. 나는 다음에 '1.11'을 넣고 작동하지만, 내가 사용하고있는 코드에서 임의의 문자가있다. '1.9'이후는 '1.10'또는 '1.11'이 아니므로 완전히 혼란스러워합니다. – user2387537
@stark에 태그하는 것을 잊었습니다. – user2387537
@ user2387537 : 문자열과 부동 소수점 숫자를 혼동하고 있습니다. 텍스트 위젯에'1.10'을 실제로 넘겨 준다면 문자열 "1.1"'로 해석 될 것입니다. 그러나 그 외에 무엇을 기대합니까? 이러한 이유 때문에 부동 소수점 숫자를 텍스트 위젯 인덱스로 사용해서는 안됩니다. 부동 소수점 숫자 만 룩앤필처럼 보입니다. tkinter 텍스트 위젯에서, "1.10"은 항상 "1.9"를 따릅니다. –