반응형
최종 목표는 아래 GUI 다.
1차 선택에 대푯값 라디오 버튼을 누르면 2차선택에 평균, 중앙값이 나오게 하고 싶다. 변산도 라디오 버튼을 눌렀을 때는 표준편차, 절대편차가 나오게 하고 싶다.
각 라디오버튼으로 부터 value 값을 받아서 if문을 짜고 while 문 안에 넣어주었다. 코드는 아래와 같다.
import tkinter as tk
import tkinter.filedialog #이걸 따로 추가해야된다. 왜인지 모르겠음;
#윈도우 생성
root=tk.Tk()
#전체 이름
root.title('파일 여는 프로그램')
#창 크기 +붙은 부분은 좌상단 떨어진 위치
root.geometry("1000x400+100+100")
def openfile():
global filename
filename=tk.filedialog.askopenfilename(initialdir = "C:/Users/Public",
title = "open file", filetypes = (("text file","*.txt"),("all files","*.*")))
#이미지 추가
file_img=tk.PhotoImage(file="경로/icon.png")
file_img=file_img.subsample(2,2)
button01 = tkinter.Button(root, overrelief="solid", command=openfile,bg="white",image=file_img)
button01.grid(row=0,column=1,padx=5,pady=10)
#불변라벨
lab00=tk.Label(root,text="파일 불러오기",font=('Arial 20 bold'),bg='white',fg="black",width=11)
lab00.grid(row=0,column=0,padx=5,pady=10)
lab10=tk.Label(root,text="1차선택",font=('Arial 20 bold'),bg='white',fg="black",width=11)
lab10.grid(row=1,column=0,padx=5,pady=10)
lab20=tk.Label(root,text="2차선택",font=('Arial 20 bold'),bg='white',fg="black",width=11)
lab20.grid(row=2,column=0,padx=5,pady=10)
rad_1=tk.IntVar()
#라디오버튼
rad11=tk.Radiobutton(root, text="대푯값",font=('Arial 18 bold'),
value=1,indicator=False,selectcolor="#4EA346",bg='gray',variable=rad_1)
rad11.grid(row=1,column=1,padx=5,pady=10,sticky='w')
rad12=tk.Radiobutton(root, text="변산도",font=('Arial 18 bold'),
value=2,indicator=False,selectcolor="#4EA346",bg='gray',variable=rad_1)
rad12.grid(row=1,column=2,padx=5,pady=10,sticky='w')
#업데이트가 필요한 요소들
while True :
lab02=tk.Label(root,text=filename,font=('Arial 12 bold'),bg='white',fg="black",width=50,height=1)
lab02.grid(row=0,column=2,padx=5,pady=10)
if rad_1.get() ==1 :
rad21=tk.Radiobutton(root, text="평균",font=('Arial 18 bold'),
value=1,indicator=False,selectcolor="#4EA346",bg='gray')
rad21.grid(row=2,column=1,padx=5,pady=10,sticky='w')
rad22=tk.Radiobutton(root, text="중앙값",font=('Arial 18 bold'),
value=2,indicator=False,selectcolor="#4EA346",bg='gray')
rad22.grid(row=2,column=2,padx=5,pady=10,sticky='w')
if rad_1.get() ==2 :
rad21=tk.Radiobutton(root, text="표준편차",font=('Arial 18 bold'),
value=1,indicator=False,selectcolor="#4EA346",bg='gray')
rad21.grid(row=2,column=1,padx=5,pady=10,sticky='w')
rad22=tk.Radiobutton(root, text="절대편차",font=('Arial 18 bold'),
value=2,indicator=False,selectcolor="#4EA346",bg='gray')
rad22.grid(row=2,column=2,padx=5,pady=10,sticky='w')
root.update()
root.mainloop()
실행은 되는데 계속 깜빡거리고, 두번째 2차선택 버튼들이 선택이 안된다. 당연한게 while 문으로 계속 업데이트 되고 있어 그렇다. 다른 방법을 찾아야 겠다.
반응형
'GUI 프로젝트 > 파일 불러온 뒤 자동수정 저장 (Tkinter)' 카테고리의 다른 글
[파이썬 Tkinter GUI 만들기] 12. 불러온 메모장 데이터프레임에 넣기 (0) | 2022.01.28 |
---|---|
[파이썬 Tkinter GUI 만들기] 11. 함수로 분기 만들기 (라디오 버튼의 아주 중요한 성질) (0) | 2022.01.28 |
[파이썬 Tkinter GUI 만들기] 9. 라디오버튼 value 값 얻는 법 (0) | 2022.01.28 |
[파이썬 Tkinter GUI 만들기] 8. 코드 구조 변경하기 (0) | 2022.01.28 |
[파이썬 Tkinter GUI 만들기] 7. 라디오버튼 예쁘게 만들기 (0) | 2022.01.28 |
댓글