너무 기초 없이 띄엄띄엄 하다보니 흥미가 떨어지고 있다.
다시 처음부터 책을 보며 공부한 흔적을 남겨보자.
책출처 - 파이썬GUI 프로그래밍 쿡북
01. 첫 gui 만들기
1
2
3
4
5
|
import tkinter as tk
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
win.mainloop()
|
cs |
02. gui 사이즈 조정하기
1
2
3
4
5
6
7
8
|
import tkinter as tk
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
# win.resizable(True, False) # win.resizable(False, True)
win.resizable(False, False) # 마우스 확장 잠김
win.geometry('500x200') # 사이즈 세팅
win.mainloop()
|
cs |
gui 기본 사이즈 세팅 : win.geometry('500x200')
마우스 크기 변경 불가 : win.resizable(False, False)
가로만 변경 가능 : win.resizable(True, False)
세로만 변경 가능 : win.resizable(False, True)
03. 라벨(label)
1
2
3
4
5
6
7
8
9
|
import tkinter as tk
from tkinter import ttk #ttk 모듈 import
win = tk.Tk()
ttk.Label(win, text='난 라벨이라고해').grid(column=0, row=0) # grid는 gui에 위치지정 0,0
win.mainloop()
|
cs |
grid는 gui에 위치를 정해준다.
04. 버튼(button) - 버튼값, 라벨값, 배경색 변경 이벤트
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import tkinter as tk
from tkinter import ttk #ttk 모듈 import
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
################ 함수(콜백) ################
def click_me():
bu.configure(text='클릭해줘서 고마워',state='disabled' ) # 버튼 내용 변경/ state=버튼비활성화
memo.configure(text='ok') # 버튼 내용 변경
################ 라벨 ################
memo = ttk.Label(win, text='title') # 라벨내용
memo.grid(column=0, row=0) # 라벨위치
################ 버튼 ################
bu = ttk.Button(win, text='나를 클릭해라', command=click_me) #command= click_me 함수 불러오기
bu.grid(column=1, row=0) # 버튼위치 (column = 열 / row = 행)
win.mainloop()
|
cs |
command ='click_me' # 버튼 이벤트 실행
configure(text='텍스트변경값') #이벤트 실행시 정보변경
memo.configure(text='ok',foreground='red') # foreground 옵션값은 글씨색상변경
state ='disabled' # 클릭 후 버튼 비활성화
bu.configure(state='disabled')
05. 텍스트박스(Entry)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
import tkinter as tk
from tkinter import ttk #ttk 모듈 import
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
################ 함수(콜백) ################
def click_me():
bu.configure(text='클릭해줘서 고마워') # 버튼 내용 변경
memo.configure(text='ok'+name.get(), foreground='red') # get()으로 값을 적용
################ 라벨 ################
memo = ttk.Label(win, text='title') # 라벨내용
memo.grid(column=0, row=0) # 라벨위치
################ 텍스트박스 ################
name = tk.StringVar() # 문자 name 변수선언
text_in = ttk.Entry(win, width='12', textvariable=name)
text_in.grid(column=0,row=1)
################ 버튼 ################
bu = ttk.Button(win, text='나를 클릭해라', command=click_me) #command= click_me 함수 불러오기
bu.grid(column=1, row=1) # 버튼위치 (column = 열 / row = 행)
win.mainloop()
|
cs |
한줄짜리 텍스트 박스 == Entry
StringVar() : tkinter을 사용하려면 name를 StringVar() 타입으로 선언해야한다.
이유는 tkinter가 파이썬이 아니기 때문,, 파이썬에 사용은 가능하지만 같은 언어가 아님.
get() : 텍스트박스에 입력 값을 호출 ex) 변수.get()
focus() : gui실행시 위젯을 지정해 활성화해 준다.
text_in.focus()
06. 콤보박스(Combobox)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
import tkinter as tk
from tkinter import ttk #ttk 모듈 import
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
################ 함수(콜백) ################
def click_me():
bu.configure(text='클릭해줘서 고마워') # 버튼 내용 변경
bu.configure(state='disabled') # 버튼 내용 변경
memo.configure(text='ok'+'-'+name.get()+'-'+com_bo.get(), foreground='red')
################ 라벨 ################
memo = ttk.Label(win, text='title') # 라벨내용
memo.grid(column=0, row=0) # 라벨위치
################ 텍스트박스 ################
name = tk.StringVar() # 문자 name 변수선언
text_in = ttk.Entry(win, width='12', textvariable=name)
text_in.grid(column=0,row=1)
################ 콤보박스 ################
com = tk.StringVar() # com StringVar() 타입 변수선언
com_bo = ttk.Combobox(win, width=12, textvariable=com)
com_bo['values'] = (100,200,300,400,500,600,700)
com_bo.grid(column=1,row=1)
com_bo.current(0) # 콤버박스 첫번째값 지정
################ 버튼 ################
bu = ttk.Button(win, text='나를 클릭해라', command=click_me) #command= click_me 함수 불러오기
bu.grid(column=2, row=1) # 버튼위치 (column = 열 / row = 행)
win.mainloop()
|
cs |
com_bo['values'] = (100,200,300,400,500,600,700) : 콤보박스 값을 튜플로 적용
current(0) : 0 = 100 / 1 = 200 / 2 = 300 실행시 첫 기본값 지정
memo.configure(text='ok'+'-'+name.get()+'-'+com_bo.get(), foreground='red')
07. 체크버튼(Checkbutton)
08. 라디오버튼(Radiobutton)
09. 스크롤텍스트 박스(ScrolledText)
tk.WORD = 단어별로 줄바꿈을 표시
[스크롤 텍스트 박스에 직접 글을써며 엔터 쳤을때 화면]
[스크롤 텍스트 박스-> 텍스트박스 input내용을 버튼 클릭시 표시하기]
scroll.insert(tk.INSTER, '내용')
self.txbox.insert(INSERT, '안녕하세요')
self.txbox.delete(1.0,'end') #내용지우기
소스전체보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import tkinter as tk
from tkinter import ttk #ttk 모듈 import
from tkinter import scrolledtext
win = tk.Tk()
win.title('안녕 이제 시작이야 gui')
################ 함수(콜백) ################
def click_me():
bu.configure(text='클릭해줘서 고마워') # 버튼 내용 변경
bu.configure(state='disabled') # 버튼 내용 변경
memo.configure(text='ok'+'-'+name.get()+'-'+com_bo.get(), foreground='red')
scroll.insert(tk.INSERT, '안녕하세요' + name.get())
################ 라벨 ################
memo = ttk.Label(win, text='title') # 라벨내용
memo.grid(column=0, row=0) # 라벨위치
################ 텍스트박스 ################
name = tk.StringVar() # 문자 name 변수선언
text_in = ttk.Entry(win, width='12', textvariable=name)
text_in.grid(column=0,row=1)
################ 콤보박스 ################
com = tk.StringVar() # com StringVar() 타입 변수선언
com_bo = ttk.Combobox(win, width=12, textvariable=com)
com_bo['values'] = (100,200,300,400,500,600,700)
com_bo.grid(column=1,row=1)
com_bo.current(0) # 콤버박스 첫번째값 지정
################ 버튼 ################
bu = ttk.Button(win, text='나를 클릭해라', command=click_me) #command= click_me 함수 불러오기
bu.grid(column=2, row=1) # 버튼위치 (column = 열 / row = 행)
################ 텍스트스크롤박스 ################
sc_w = 50
sc_h = 5
scroll = scrolledtext.ScrolledText(win, width=sc_w, height=sc_h, wrap=tk.WORD)
scroll.grid(column=0, columnspan=3)
win.mainloop()
|
cs |
'파이썬 (pythoon)' 카테고리의 다른 글
[python] xpath 경로 찾기 (selenuim / html / tag) (1) | 2021.07.12 |
---|---|
[python] selenium / 쇼핑몰 제품 크롤링 / 엑셀 저장 / openpyxl workbook/ append / find_element_by_class (0) | 2021.07.09 |
[python] Tk() tkinter GUI 기본구성 - 텍스트박스 실시간 log 표기(스크롤 연동) (0) | 2021.05.16 |
[python] openpyxl 셀의 합계 값, 수량 / list 총 합계 구하기 (0) | 2021.05.14 |
[python] 파이썬 폴더 내에 폴더이름 변경하기 (001,002,003...) (0) | 2020.07.09 |