텍스트 커서 좌표가 올바르게 업데이트되지 않는 이유는 무엇입니까?

nbro

텍스트 편집기를위한 간단한 행-열 카운터를 만들기 index위해 tkinter.Text위젯 기능을 사용하기로 결정했습니다 . 실제로이 index함수는 인수로 전달 된 좌표의 행과 열을 나타내는 문자열을 반환합니다.

특히 effbot 웹 사이트에서 다음 cursor_pos = text.index(tkinter.INSERT)과 같이 커서의 인덱스를 가져 오는 데 사용 하고 있습니다 .tkinter.INSERT

tkinter.INSERT는 삽입 커서에 해당합니다.

문제는 tkinter.INSERT화살표로 커서를 이동할 때까지 마지막 커서 위치를 제공 하는 것 같습니다 (예 :).

다음은 행과 열의 수를 처리하는 함수입니다.

def on_key_pressed(self, event=None):
    """Docs """
    if self.tpane is not None:
        print(self.lines, self.columns)

        self.tpane.update()
        cursor_pos = self.tpane._tabs[self.tpane.selected()].text.index(tkinter.INSERT)
        self.lines = int(cursor_pos.split('.')[0])
        self.columns = int(cursor_pos.split('.')[1])
        print(self.lines, self.columns)
        self.line_c.config(text='Lines: ' + str(self.lines))
        self.col_c.config(text='Columns: ' + str(self.columns))

        self.update()

상황을 이해할 수 있을지 모르겠네요 ... 에디터에서 처음 글자를 입력 self.columns하면 두 번째 글자를 쓸 때까지 변수가 1로 업데이트되지 않습니다 (0으로 유지됨). 여기서 1로 업데이트됩니다. 의 위에. 그러나 새 편지를 쓰지 않고 업데이트하는 트릭이 있습니다. 첫 글자를 쓴 후 화살표로 커서를 움직이면 self.columns실제로 1로 업데이트됩니다 .

또 다른 문제는 존재하는 캐릭터를 삭제하려고 할 때입니다. 예를 들어, 나는 3 개 문자가있는 경우 (내가 있다고 가정 self.columns3), 그리고 프레스 delete, self.columns설명 할 수 없을 갱신 4, 나는이 시점에서, 다른 문자를 제거하려고하면, 그것은 3 업데이트합니다.

이 문제 self.lineson_key_pressed이벤트 핸들러 에도 존재 합니다. 이런 일이 일어나야하는지 잘 모르겠고, 그렇다면 뭔가 빠진 것입니다 ...

브라이언 오클리

이는 사용자 정의 바인딩이 기본 제공 바인딩 전에 실행되고 실제로 위젯을 수정하고 커서 위치를 변경하는 기본 제공 바인딩이기 때문에 발생합니다.

bindtag를 활용하여 순서를 변경할 수 있습니다. 자세한 내용은 다음 질문을 참조하십시오. tkinter의 bindtag에 관한 기본 쿼리

bindtags를 변경하는 방법의 예는 다음 답변을 참조하십시오 : https://stackoverflow.com/a/3513906/7432

bindtags를 다루고 싶지 않다면 <KeyRelease>. 기본 제공 바인딩은 키를 누를 때 발생 하므로 위젯이 업데이트 된 후 릴리스 바인딩이 항상 실행됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

텍스트 커서 좌표가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

Acrobat에서 계산 합계가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 반응 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

상태 후크가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

내 후크 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

Chrome 51에서 본 SVG가 텍스트 뒤에 추가 된 간격으로 올바르게 배치되지 않는 이유는 무엇입니까?

분류에서Dev

Ajax가 모델을 올바르게 업데이트하지 않는 이유는 무엇입니까?

분류에서Dev

mvc에서 웹 양식 컨트롤 렌더링 : 포스트 백 및 이벤트가 올바르게 트리거되지 않는 이유는 무엇입니까?

분류에서Dev

부 스트랩 클래스가 올바르게 해결되지 않는 이유는 무엇입니까?

분류에서Dev

Java의 문자열 관련 문제 : 레벨 승격 / 다운 그레이드가 올바르게 업데이트되지 않는 이유는 무엇입니까?

분류에서Dev

이 onClick 이벤트가 올바르게 적용되지 않는 이유는 무엇입니까?

분류에서Dev

R에서 올바르게 업데이트되지 않는 입력 선택

분류에서Dev

이 시트가 올바르게 정렬되지 않는 이유는 무엇입니까?

분류에서Dev

Firefox에서 Angular 모델은 포커스가 드롭 다운을 벗어날 때까지 업데이트되지 않습니다. 탭할 때 초점을 올바르게 설정하는 방법은 무엇입니까?

분류에서Dev

상태가 올바르게 업데이트되지 않는 것 같습니다.

분류에서Dev

이 플롯 js 차트에서 x 축 값이 올바르게 표시되지 않는 이유는 무엇입니까?

분류에서Dev

텍스트 요소의 내용이 올바르게 정당화되지 않는 이유는 무엇입니까?

분류에서Dev

텍스트 요소의 내용이 올바르게 정당화되지 않는 이유는 무엇입니까?

분류에서Dev

내 스프라이트가 올바르게 그려지지 않는 이유 (libgdx)는 무엇입니까?

분류에서Dev

테이블 뷰 셀에서 스테퍼를 사용하지만 VC로 반환되는 데이터가 올바르게 업데이트되지 않습니다.

분류에서Dev

내 아이콘이 albert launcher에서 올바르게 표시되지 않는 이유는 무엇입니까?

분류에서Dev

React.js : 업데이트 후 자식 입력 defaultValue가 HTML에서는 정확하지만 페이지에 올바르게 표시되지 않습니다.

분류에서Dev

시계열 컬렉션 차트의 데이터가 올바르게 표시되지 않는 이유는 무엇입니까?

분류에서Dev

왜 생성자 함수가 올바르게 <H6> 텍스트를 설정되지 않는 이유는 무엇입니까?

분류에서Dev

이지도가 업데이트되는 이유는 무엇입니까? (자바)

분류에서Dev

올바른 텍스트가 표시되지 않는 이유는 무엇입니까?

분류에서Dev

내 텍스트가 내비게이션 바 뒤에 표시되지 않는 이유는 무엇입니까?

분류에서Dev

스크립트 끝에서 exit_code가 올바르지 않은 이유는 무엇입니까?

분류에서Dev

타이머가 CollectionView에서 올바르게 업데이트되지 않음

Related 관련 기사

  1. 1

    텍스트 커서 좌표가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  2. 2

    Acrobat에서 계산 합계가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  3. 3

    내 반응 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  4. 4

    상태 후크가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  5. 5

    내 후크 상태가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  6. 6

    Chrome 51에서 본 SVG가 텍스트 뒤에 추가 된 간격으로 올바르게 배치되지 않는 이유는 무엇입니까?

  7. 7

    Ajax가 모델을 올바르게 업데이트하지 않는 이유는 무엇입니까?

  8. 8

    mvc에서 웹 양식 컨트롤 렌더링 : 포스트 백 및 이벤트가 올바르게 트리거되지 않는 이유는 무엇입니까?

  9. 9

    부 스트랩 클래스가 올바르게 해결되지 않는 이유는 무엇입니까?

  10. 10

    Java의 문자열 관련 문제 : 레벨 승격 / 다운 그레이드가 올바르게 업데이트되지 않는 이유는 무엇입니까?

  11. 11

    이 onClick 이벤트가 올바르게 적용되지 않는 이유는 무엇입니까?

  12. 12

    R에서 올바르게 업데이트되지 않는 입력 선택

  13. 13

    이 시트가 올바르게 정렬되지 않는 이유는 무엇입니까?

  14. 14

    Firefox에서 Angular 모델은 포커스가 드롭 다운을 벗어날 때까지 업데이트되지 않습니다. 탭할 때 초점을 올바르게 설정하는 방법은 무엇입니까?

  15. 15

    상태가 올바르게 업데이트되지 않는 것 같습니다.

  16. 16

    이 플롯 js 차트에서 x 축 값이 올바르게 표시되지 않는 이유는 무엇입니까?

  17. 17

    텍스트 요소의 내용이 올바르게 정당화되지 않는 이유는 무엇입니까?

  18. 18

    텍스트 요소의 내용이 올바르게 정당화되지 않는 이유는 무엇입니까?

  19. 19

    내 스프라이트가 올바르게 그려지지 않는 이유 (libgdx)는 무엇입니까?

  20. 20

    테이블 뷰 셀에서 스테퍼를 사용하지만 VC로 반환되는 데이터가 올바르게 업데이트되지 않습니다.

  21. 21

    내 아이콘이 albert launcher에서 올바르게 표시되지 않는 이유는 무엇입니까?

  22. 22

    React.js : 업데이트 후 자식 입력 defaultValue가 HTML에서는 정확하지만 페이지에 올바르게 표시되지 않습니다.

  23. 23

    시계열 컬렉션 차트의 데이터가 올바르게 표시되지 않는 이유는 무엇입니까?

  24. 24

    왜 생성자 함수가 올바르게 <H6> 텍스트를 설정되지 않는 이유는 무엇입니까?

  25. 25

    이지도가 업데이트되는 이유는 무엇입니까? (자바)

  26. 26

    올바른 텍스트가 표시되지 않는 이유는 무엇입니까?

  27. 27

    내 텍스트가 내비게이션 바 뒤에 표시되지 않는 이유는 무엇입니까?

  28. 28

    스크립트 끝에서 exit_code가 올바르지 않은 이유는 무엇입니까?

  29. 29

    타이머가 CollectionView에서 올바르게 업데이트되지 않음

뜨겁다태그

보관