반응형

GUI 생성

지금까지 콘솔 출력에 데이터를 표시하는 Python 코드를 작성했습니다. 그러나 대부분의 최신 Python 응용 프로그램에서는 GUI(그래픽 사용자 인터페이스)를 개발해야 합니다. 다양한 Python 라이브러리를 사용하여 GUI를 개발할 수 있습니다. 그러나 Tkinter GUI 개발을 위한 유일한 내장 Python 라이브러리입니다.

 

Tkinter로 간단한 다이얼로그를 만들려면 아래 스크립트와 같이 Tkinter 모듈의 Tk 클래스를 사용할 수 있습니다.

Tk 클래스의 객체에서 mainloop() 메서드를 호출해야 합니다.

mainloop() 메서드는 화면에 다이얼로그를 계속 표시합니다. mainloop() 메서드가 없으면 다이얼로그가 나타나고 즉시 사라집니다.

 

Output:

 

title 속성을 사용하여 다이얼로그의 제목을 설정할 수 있습니다.

마찬가지로 창의 너비, 높이, 위치를 설정하기 위해 geometry 속성을 사용할 수 있습니다. 너비와 높이(픽셀) 및 화면 상단과 왼쪽으로부터의 거리는 다음 형식으로 지정됩니다.

 

너비 x 높이 + 왼쪽으로부터의 거리 + 상단으로부터의 거리.

 

다음 스크립트는 창의 너비와 높이를 500픽셀로 설정하고 화면 왼쪽으로부터의 거리는 100픽셀이고 화면 상단으로부터의 거리는 200픽셀로 설정한 다이얼로그 예제입니다.

 

Output:

 

다이얼로그에 간단한 레이블을 추가해 보겠습니다. 그렇게 하려면 Label 클래스 객체를 만들어야 합니다. 생성자에서 레이블을 첨부하려는 다이얼로그 이름이 첫 번째 매개변수로 전달됩니다.

또한 레이블을 다이얼로그에 추가하려면 Label 클래스 객체에서 pack() 메서드를 호출해야 합니다.

 

Output:

 

위젯 작업

위젯은 다양한 유형의 작업을 수행하는 데 사용할 수 있는 GUI 객체입니다.

Tkinter에는 테마 위젯과 일반 위젯의 두 가지 유형의 위젯이 있습니다. 테마 위젯은 Tkinter 라이브러리의 tkk 모듈 내부에 있습니다. 일반 위젯은 Tkinter 라이브러리 내부의 최상위 레벨에 있습니다.

 

버튼추가

버튼 위젯을 사용하면 다이얼로그에 클릭 가능한 버튼을 추가할 수 있습니다.

다음 스크립트는 my_button이라는 테마 버튼을 다이얼로그에 추가합니다. 테마 버튼을 생성하려면 tkk.Button 클래스의 객체를 생성해야 합니다.

모든 위젯의 첫 번째 매개변수는 위젯을 연결하려는 다이얼로그입니다. 다른 매개변수들은 각각의 위젯에 따라 다릅니다. 예를 들어, 테마 버튼의 경우 text 속성을 통해 버튼 텍스트를 지정할 수 있습니다.

command 속성을 사용하여 버튼을 클릭할 때 호출되는 콜백 함수를 지정할 수도 있습니다.

마지막으로 기본 다이얼로그에 연결해야 하는 모든 위젯에서 pack() 메서드를 호출해야 합니다.

 

Output:

 

텍스트 필드 추가

다이얼로그에 텍스트 필드를 추가해 보겠습니다. 텍스트 필드를 추가하려면 항목 위젯을 사용할 수 있습니다. 항목 위젯은 테마 위젯뿐만 아니라 단순 위젯으로도 사용할 수 있습니다.

기본 다이얼로그 속성과 별도로 Entry 필드에 입력한 텍스트를 Entry 클래스의 textvariable 속성을 사용하여 StringVar의 객체에 바인딩할 수 있습니다.

다음 스크립트는 my_text라는 StringVar 클래스 객체를 초기화합니다. 다음으로 Entry 클래스 객체인 text_field를 정의하여 텍스트 필드를 생성합니다.

 

Entry 클래스의 속성은 다음과 같습니다.

첫 번째 매개변수 값은 평소와 같이 텍스트 필드가 첨부될 다이얼로그입니다.

두 번째 매개변수는 my_text 객체로, textvariable 속성에 할당됩니다. 텍스트 변수에 입력된 텍스트를 검색하려면 my_text 객체를 통해 get() 메서드를 호출하면 됩니다.

 

마지막으로 text_field 객체를 통해 pack() 메서드를 호출할 수 있습니다. 여기에서 확장 속성의 값으로 True를 전달했음을 주목하세요. 그러면 위젯이 기본 창의 전체 너비로 확장됩니다.

 

Output:

텍스트 필드의 다른 예를 살펴보겠습니다.

다음 스크립트는 기본 다이얼로그에 두 개의 위젯을 추가합니다.

첫 번째는 텍스트 필드이고 두 번째는 버튼입니다.

버튼의 콜백 함수는 my_func()입니다. 버튼을 클릭하면 get() 메서드를 사용하여 텍스트 필드의 텍스트를 검색합니다. 텍스트 필드가 비어 있으면 필드에 일부 텍스트를 입력하라는 메시지가 표시됩니다. 그렇지 않으면 필드의 텍스트가 콘솔에 표시됩니다.

 

Output:

 

반응형

+ Recent posts