Hi Hi

'파이썬 데이터 입력 위젯'에 해당되는 글 1건

  1. 파이썬(Python) - GUI 데이터 입력 위젯 사용하기

파이썬(Python) - GUI 데이터 입력 위젯 사용하기

 


GUI는 이벤트뿐만 아니라 데이터도 다를 수 있습니다.
위젯은 보통의 텍스트를 입력받거나 메뉴를 제공할 수 있습니다.

GUI에서 데이터 읽어오기
1. 텍스트를 입력할 곳을 만들어야 합니다.

2. 입력한 정보를 읽어 올 방법이 필요합니다.
 데이터가 파일에 저장되어야 하기 때문에 사용자가 입력한 데이터를 인터페이스 요소에게 물어볼 방법이 필요합니다.
 그러면 사용자가 저장(Save) 버튼을 클릭할 때 사용자가 입력한 데이터를 텍스트파일에 저장할 수 있을 것입니다.



입력과 텍스트 위젯으로 GUI에 텍스트 데이터를 입력할 수 있습니다.

짧은 텍스트 필드와 여러 라인의 긴 문장을 입력할 수 있는 멀티-라인 텍스트 필드가 필요합니다.
요구에 맞게 파이선 tkinter 라이브러리는 두 종유릐 데이터 입력 위젯을 갖고 있습니다.

1. 입력 위젯: 한 라인의 텍스트 입력용
 대부분의 텍스트 필드에서 사용하는 것은 입력(Entry)  위젯 입니다.
my_small_field = Entry(app)

2. 텍스트 위젯: 여러 라인의 긴 텍스트 입력용
 모든 텍스트가 한 라인에 들어갈 수 있는 것이 아니므로 tkinter는 텍스트(Text) 위젯도 제공합니다.
my_large_field = Text(app)



텍스트 필드에서 데이터를 읽고 쓰기
 입력 위젯에 텍스트를 입력하면 파이썬은 그 텍스트를 메모리 어딘가에 스트링으로 보관합니다.
 그 스트링을 읽으려면 단지 위젯의 get() 메소드를 호출하면 됩니다.
my_entry_field.get ()

'ice cream' 을 반환 합니다.


 위젯에 들어있는 텍스트를 변경하고 싶다면 insert() 메소드를 사용하여 위젯에 텍스트를 추가할 수 있습니다.
my_entry_field.insert (0,"banana ")  // (0, "banana ") 삽일할 위치 입니다. 입력 필드의 인덱스는 0부터 시작합니다.

'banana ice cream' 아래와 같이 추가 됩니다.


위젯에 들어있는 텍스트는 삭제하고 싶다면 delet() 메소드를 사용하여 위젯에 텍스트를 삭제할 수 있습니다.
my_entry_field.delete (0, END) // END는 특별한 값으로 필드에서 마지막 글자를 나타냅니다. 전테 텍스트를 지울 수 있습니다. 



큰 텍스트 필드 다루기
텍스트 필드는 "행.열" 형태의 스트링으로 된 인텍스를 사용합니다.
my_large_field.get ("1.0", END) // "1.0"은 1행 0열을 나타내므로 필드의 첫 글자가 됩니다. 이렇게하면 텍스트 필드의 전체텍스트를 반환합니다.

my_large_field.delete ("1.0", END) // 이렇게 하면 필드 전체를 삭제 합니다.
my_large_field.insert ("1.0", END) // 이렇게 하면 필드의 제일 앞 부분에 텍스트를 삽입합니다.


택스트 필드에서 행은 1 부터, 열은 0부터 시작합니다.

다음 포스팅에 코드를 활용한 프로그래밍 예제를 올리겠습니다.