반응형
시간 관리 프로그램을 만들면서 사용한 것들을 필요할 때 참고하기 좋게 정리했다.
표 속에는 실제 사용한 예를 적어 쉽게 복사해서 쓸 수 있게 하였다.
차례_______________________________
- 윈도우 창
- 메뉴탭
- 라벨
- 버튼
- 입력창
- 라디오 버튼
- 트리뷰
___________________________________
모듈
- import tkinter as tk
- import tkinter.ttk as ttk
윈도우 창
- 생성: 창이름 = Tk()
- 제목표시: 창이름.title("표시할이름")
- 크기/위치: 창이름.geometry("너비x높이+x좌표+y좌표")
- 크기조절: 창이름.resizable(width=False, height=False)
- 창이름.mainloop() : gui가 종료될때까지 실행시킴
window = tk.Tk() window.title("Time Management") |
메뉴 탭
- 생성: 이름=ttk.Notebook(창이름, width=너비, height=높이)
- 배치: 이름.grid(row=0, column=0)
- 탭에서 표시할 프레임명 = tk.Frame(창이름)
- 이름.add(프레임명, text="표시할글")
notebook=ttk.Notebook(window, width=400, height=500) notebook.grid(row=0, column=0) frame1=tk.Frame(window) notebook.add(frame1, text="입력") frame2=tk.Frame(window) notebook.add(frame2, text="통계") |
라벨
- 생성: 라벨이름 = tk.Label(표시할창이름, text = "표시할 글자", font=("궁서체", 24), bg='magenta', width=30, height=10, anchor=SE)
- 위치지정1: 라벨이름.grid(row=0, column=0)
- 위치지정2: 라벨이름.place(x=100, y=50)
label1=tk.Label(frame1, text="* 시간 사용 내역을 입력하고, 입력 버튼을 클릭하세요.", font=("나눔고딕", 14), width=50, anchor='w' ) label1.place(x=20, y=10) |
반응형
버튼
- 생성: 버튼이름 = tk.Button(표시할창이름, text = “표시할 글”, width=3, height = 5, command = 함수명)
- 위치지정1: 버튼이름.grid(row=0,column=0)
- 위치지정2: 버튼이름.place(x=100, y=50)
- 인자 전달:
button_save = tk.Button(frame1, text="입 력",font=("나눔고딕", 14), width=10, fg="red", highlightthickness=1, command=get_save) button_save.place(x=300, y=250) |
엔트리(입력 창)
- 생성: 엔트리이름 = tk.Entry(창이나 프레임 이름, width=너비)
- 배치: 엔트리이름.place(x=좌표값, y=좌표값)
- 정수 입력하기: 변수명 = int(엔트리이름.get())
- 소수점 입력하기: 변수명 = float(엔트리이름.get())
- 변수값 입력하기: 엔트리이름.insert(0, 변수이름)
- 데이터 모두 삭제: 엔트리이름.delete(0, tk.END)
date =tk.Entry(frame1, width=12) date.place(x=130, y=120) e_date=int(entry2.get()) text_pt.insert(0, total_min) entry1.delete(0, tk.END) |
라디오 버튼
- 생성: 이름 = tk.Radiobutton(나타낼프레임이름, text='표시할글', value='선택시 전달할내용', font=("나눔고딕", 12), variable=변수명, width=10, anchor='정렬방식' )
- 변수명은 같게, 전달할 내용은 다르게
- 문자를 전달받기 위해서는 변수를 미리 설정해야 함. 변수명 = tk.Stringvar()
- 배치: 이름.place(x=130, y=80)
sort=tk.StringVar() rad1 = tk.Radiobutton(frame1, text='그림', value='drawing',font=("나눔고딕", 12), variable=sort, width=10, anchor='w' ) rad2 = tk.Radiobutton( … rad1.place(x=130, y=80) rad2.place(x=200, y=80) |
트리뷰
- 생성: treeview=ttk.Treeview(표시할창, columns=[표시할 칼럼을 "칼럼제목", 형식으로 나열], displaycolumns=[표시하는 순서를 "칼럼제목", 형식으로 나열], selectmode='extended')
treeview.pack()
- 각 컬럼별로 표시될 이름, 넓이, 정렬 등 설정: treeview.column("#0", width=100, anchor="center")
treeview.heading("Madeby", text="제조사", anchor="center")
- 표에 삽입될 데이터: 리스트 형식으로
df = pd.read_csv('mydata.txt', header = None, names=['MadeBy', 'item', 'p_Day', 'Qty'])
df_sort = df.sort_values(by = ['p_Day'], ascending = [True])
treelist= df_sort.values.tolist()
- 표에 데이터 입력:
for i in range(len(treelist)):
treeview.insert('', 'end', text=i, values=treelist[i], iid=i)
treeview = tk.ttk.Treeview(frame3, column=["date", "sort", "used_time", "content"], displaycolumns=["date", "sort", "content", "used_time"]) treeview.pack() treeview.column("date", width=70, anchor="center") treeview.heading("date", text="날짜", anchor="center") treeview["show"] = "headings" row_list = df.values.tolist() for i in range(len(row_list)): treeview.insert("", "end", text="", values=row_list[i], iid=i) |
728x90
'Manuals > 파이썬' 카테고리의 다른 글
파이썬] 피보나치 나선 그리기 (64) | 2023.11.12 |
---|---|
파이썬 tkinter, TOEIC 단어 암기 프로그램 (0) | 2023.04.14 |
파이썬 pandas, 액셀 파일 사용 (0) | 2023.04.03 |
파이썬, 체질량지수(BMI)와 정상체중 범위 (0) | 2023.04.03 |
파이썬 GUI, tkinter를 이용한 시간 관리 프로그램 (1) | 2023.03.24 |