2013-07-14 2 views
1

텍스트 상자에서 하나의 문자를 삭제하려고하는데 삭제하려는 문자의 색인을 분명히 알아야합니다. 나는 각 캐릭터가 Fazackerley와 같은 자신의 인덱스를 가지고 있다는 것을 안다. 'F'는 1.0이고 'a'는 1.1이 될 것이지만 11 번째 문자 ('y')를 얻으면 1.10이 될 것인가? 하지만 그 이유는 1.10이 1.1과 같기 때문에 'a'를 삭제하기 때문이 아닙니다. 왜냐하면 그들은 볼 수 없지만 0은 무한대이기 때문입니다. 그렇다면 1.9가 아닌 1.10 또는 그 이상인 숫자를 아는 사람이 누구인지 살펴보십시오.Tkinter Textbox 인덱스 삭제 1.10이 작동하지 않습니다.

누구나보고 싶다면 다음 코드를 참조하십시오.

from tkinter import * 
import time 
import random 

class Application(Frame): 
    def __init__(self, master): 
     Frame.__init__(self, master) 
     self.grid() 
     self.widgets() 

    def widgets(self): 
     self.t1 = Text(width = 35, height = 5, wrap = WORD) 
     self.t1.grid(row = 0, column = 0, sticky = W) 
     self.count = 0 
     self.coor = 1.0 
     for x in range(1): 
      self.t1.insert(END, 'fazackerley') 
      self.count += 1 
      time.sleep(0.5) 
      root.update() 
      self.t1.delete(1.10) #deletes 'a' (index 1.1) not 'y' 

root = Tk() 
root.title() 
root.geometry('250x250') 
app = Application(root) 
root.mainloop() 
모든 코드의의

하고 'Y'최대 개까지 얻을 때까지 잘 작동합니다.

답변

3

float 1.10 대신 '1.10' 문자열을 사용하십시오.

self.t1.delete('1.10') #deletes 'y' (line 1, column 10) 

Text widget indices에서이 참조를 참조하십시오.

+0

감사합니다. 아마도 가장 쉬운 수정 이었지만 생각할 수 없었습니다. 다시 감사합니다. – user2387537

관련 문제