파이썬(Python)

[ Tkinter ] 파이썬 Tkinter 버튼 비활성화(Disable / Enable Button in TKinter)

카루루1007 2022. 12. 11. 23:23
728x90
반응형
SMALL
개   요

라디오 버튼을 사용하여

일반 버튼을 활성화/비활성화 하는 방법을 알아보겠습니다.

아래 그림은 프로그램을 실행한 결과입니다.

처음 실행하면 일반 버튼은 모두 비활성화 되어 있고,

라디오 버튼도 아무것도 선택되어 있지 않습니다.

 

라디오 버튼의 [ 새 파 일 ]을 선택하면, 

[ 새파일 만들기 ]버튼은 활성화 되고,

[ 파일열기 ]버튼은 비활성화 됩니다.

 

라디오 버튼의 [ 기존파일 ]을 선택하면,

[ 새파일 만들기 ]버튼 비활성화 되고,

[ 파일 열기 ]버튼은 활성화 됩니다.

 

전체소스코드

다음은 전체 소스코드입니다.

 

코드설명

위 그림과 같이 프레임을 하나 만들었습니다.

 

프레임 안에 우선 일반 버튼 두개를 만들어 주고 상태를 모두 비활성화 시켰습니다.

[ state = "disable" ]

 

라디오 버튼을 두개 만들어 줍니다.

가만히 들여다 보면 [ variable ]과 [ value ]가 있습니다.

variable 는 변수

value 는 값입니다.

라디오 버튼의 특징은 여러개의 라디오 버튼이 있더라도,

그 중 하나만 선택이 되어야 합니다.

변수가 동일하면, 

그 라이오 버튼들은 하나의 묶음이라는 의미입니다.

즉, 같은 변수를 사용하는 라디오 버튼만 그 중에 하나가 선택됩니다.

 

반응형

그리고 value에는 라디오버튼에 할당된 값이 들어갑니다.

그리고 그 값에 접근하기 위해

file_select_check = IntVar()

를 사용합니다.

현재 위 코드에는 value 값이 정수이기 때문에 

IntVar()를사용했습니다.

 

만약 다른 형태라면 다른 함수를 사용해야 합니다. 

StringVar() : 문자열형 변수
IntVar() : 정수형 변수
DoubleVar() : 실수형 변수
BooleanVar() : Boolean(참, 거짓) 형 변수

 

그리고 각각의 라디오 버튼을 누르면

[ switch() 함수를 호출 ]하도록 만들었습니다.

 

그러면 마지막으로 switch() 함수를 살펴보겠습니다.

위에서 라디오 버튼에 접근할 수 있는 변수로 

[ file_select_check ]를 선언하였습니다.

변수의 값을 가져오기 위해서는 get() 함수를 사용합니다.

 

만약 file_select_check.get() 의 값이 [ 1 ]이면,

즉 라이오 버튼의 [ 기존파일 ]이 선택되면,

btnNewFile(새 파 일)버튼은 비활성화 되고,

btnOpenfile(기존파일)버튼은 활성화 됩니다.

 

그렇지 않으면, 

btnNewFile(새 파 일)버튼은 활성화 되고,

btnOpenfile(기존파일)버튼은 활성화 됩니다.

 

프로그램이 시작될 때 활성화 된 상태로 시작하기

만약 프로그램이 실행되었을 때 

라디오 버튼이 하나 선택되고,

그에 맞는 버튼도 활성화 되게 하려면

아래 그림과 같이 바꾸어 주면 됩니다.

 

 [ 새파일 만들기 ] 버튼의 옵션에서 disable을 없앴습니다.

 

value 값을 [ True / False ]로 바꾸어 주었고

이에 따라 IntVar() 에서BooleanVar()로 바꾸었습니다.

 

마지막으로 if 문의 형식도 간략히 줄였습니다.

 

 

728x90
반응형
LIST