728x90
λ°˜μ‘ν˜•

μ•ˆλ“œλ‘œμ΄λ“œ 무료 인강 λ“£κ³  μ •λ¦¬ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€~~

 

< μ•ˆλ“œλ‘œμ΄λ“œ >

 => 툴 : μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€  / μ–Έμ–΄ : μžλ°”, μ½”ν‹€λ¦° 
 => μ•±μ— ν•΄λ‹Ήν•˜λŠ” κΈ°λŠ₯ μœ„μ£Όλ‘œ μ΅ν˜€μ„œ λ°”λ‘œ λ§Œλ“€μ–΄λ³΄κΈ°//

<μžλ°”>

- κ°μ²΄μ§€ν–₯ μ–Έμ–΄(μ ˆμ°¨μ μ΄λž‘ λ‹€λ₯Έ κ°œλ…)
- void : μ•„무 κ°’이 μ—†λ‹€
- μ˜€λ²„ λ‘œλ“œ : int add~~~ / double add~~~ : ν•¨μˆ˜κ°€ μ΄λ¦„이 λ™μΌν•œλ° μ΄κ²ƒμ΄ μ˜€λ₯˜κ°€ μ•„λ‹ˆλΌ addλΌλŠ” ν•¨μˆ˜(1,2) / (1.5, 3.5) λ₯Ό μ²˜λ¦¬ν•˜λŠ” κ²½μš°μ— κ°κ° μ•Œμ•„μ„œ μ²˜λ¦¬ν•¨
- μƒμ† : Class Animal { /  class Cat extends Animal { : animal(λΆ€λͺ¨ν΄λž˜μŠ€)의 μ†μ„±μ„ λͺ¨λ‘ λ°›κ³  μžμ‹μ΄ κ°™λŠ” νŠΉλ³„ν•œ κ°œλ… λ˜ν•œ ν¬ν•¨ / μœ„μ˜ κ°œλ…μ„ λ‹€ λ°›μŒ
- μ˜€λ²„ λΌμ΄λ“œ :  ν•¨μˆ˜λ“€μ€ λ™μΌν•˜μ§€λ§Œ λΆ€λͺ¨μ˜ κ²ƒμ„ μžμ‹λ“€μ΄ μž¬μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•¨


<λ„€νŠΈμ›Œν¬ μ§€μ‹>

- λ™κΈ° : μ‘닡을 λ°›μ„λ•ŒκΉŒμ§€ λ‹€μŒ ν•¨μˆ˜λ‘œ λ„˜μ–΄κ°€μ§€ μ•ŠμŒ
- λΉ„동기 : ν•¨μˆ˜κ°€ ν˜ΈμΆœλ§Œ λ˜λ©΄ λ°”λ‘œ λ„˜μ–΄κ°(응닡은 μ½œλ°±μœΌλ‘œ λ°›μŒ) 
- μΏ ν‚€ : λ³€μˆ˜λ₯Ό μ €μž₯ν•˜λŠ” κ°œλ… / ν΄λΌμ΄μ–ΈνŠΈμ˜ νŠΉμ • λΆ€λΆ„, νŠΉμ • μœ„μΉ˜μ— μ €μž₯(파일둜 λ‚¨μŒ) / μΏ ν‚€ μ§€μš°κΈ° : μž„μ‹œ μ €μž₯λ³Έ λ‚ λ¦¬κΈ°
- Session : λ³€μˆ˜κ°€ μ„œλ²„μ˜ μœ„μΉ˜μ— μ €μž₯ / νŠΉμ • μ‹œκ°„ μ΄ν›„μ—λŠ” κ°’을 μ§€μ›€(λ‘œκ·ΈμΈμ€ λ‚˜κ°”λ‹€ λ“€μ–΄μ˜€λ©΄ μ—†μ–΄μ§) 
- VOIP(Voice over IP) : μŒμ„±μ„ λ°μ΄ν„°ν™” ν•œλ‹€ (ip에 μ˜ν•΄μ„œ μ „달 κ°€λŠ₯ / λ°μ΄ν„°λ₯Ό μ΄μš©ν•˜μ—¬ λ‹€μ‹œ μŒμ„±μœΌλ‘œ μ „달) ex) μΉ΄μΉ΄μ˜€ν†‘ μ „ν™”ν•˜κΈ°
-  NAT(Network Address Translate) : λͺ¨λ“  μ„œλ²„κ°€ νΌλΈ”λ¦­ μ•„이디λ₯Ό κ°–μ§€λŠ” μ•ŠμŒ / μ„œλ²„μ—λŠ” ν”„라이빗 μ•„이디λ₯Ό κ°€μ§€κ³  μžˆλŠ”데 λˆμ„ μ ˆμ•½ν•˜κ³  λ³΄μ•ˆμ„ μœ„ν•΄ μ‚¬μš© / μ ‘속을 ν•  μˆ˜ μžˆλŠ” λ°©λ²•μ΄ ν•„μš”ν•¨
- Hash : μ£Όλ―Όλ²ˆν˜Έ κ°™μ€ λ³΄ν˜Έν•΄μ•Όν•  κ²ƒμ„ λ³€μ‘°ν•˜μ—¬ μ €μž₯ν•  μˆ˜ μžˆκ²Œ ν•¨ / μ΄ κ°’이 λ§žλŠ”μ§€λ§Œ ν™•μΈν•˜κ³  λλ‚¨   
 

<μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€ μš©μ–΄>

- Build  : ν•˜λ‚˜μ˜ μ–Έμ–΄λ₯Ό apk둜 λ§Œλ“€μ–΄μ§€λŠ” κ³Όμ •
- Compile  : μš°λ¦¬μ˜ μ–Έμ–΄λ₯Ό μ»΄ν“¨ν„°κ°€ μ•Œμ•„듀을 μˆ˜ μžˆλŠ” μ–Έμ–΄λ‘œ
- Layout : .xmlμ—μ„œ κ΅¬μ„± = λ°°μΉ˜λ„(λ²„νŠΌ, λ°•μŠ€, μ§€λ„...)
- Activity : μ•ˆλ“œλ‘œμ΄λ“œ μ•±μ€ κ²°κ΅­ μ•‘ν‹°λΉ„ν‹° = ν™”λ©΄ μžμ²΄λ₯Ό λ§ν•¨ / layout을 ν’ˆκ³  μžˆλ‹€
- Event : λ²„νŠΌμ„ λˆ„λ₯Έλ‹€, μ–΄λ–€ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•΄λΌ (κΈ°λŠ₯)
- App : μ£Όλ‘œ μ—¬λŸ¬κ°œμ˜ activityλ“€μ˜ ν•©(compile)  

< ν™”λ©΄ λ ˆμ΄μ•„웃 κ΅¬μ„±μ˜ λ‘κ°€μ§€ λ°©λ²• >

- Linear Layout : μˆœμ°¨μ μœΌλ‘œ λ°°μΉ˜ (κ°€λ‘œ ν˜Ήμ€ μ„Έλ‘œ), λ°©ν–₯을 μž‘μ•„μ€Œ, λ°°μΉ˜κ°€ λ¨
- Relative Layout : ν•˜λ‚˜λ₯Ό μ€‘μ‹¬μœΌλ‘œ μ–΄λ–€κ²ƒμ˜ μœ„에 μ•„λž˜, μ˜†μ—(μƒλŒ€μ μœΌλ‘œ λ°°μΉ˜λ¨)

< μ‹€ν–‰ν•˜κΈ° >

1. μ•ˆλ“œλ‘œμ΄λ“œ μŠ€νŠœλ””μ˜€ λ‹€μš΄ λ°›κΈ°
2. κ°€μƒμ˜ ν™”λ©΄ λ§Œλ“€κΈ°(μ•ˆλ“œλ‘œμ΄λ“œ ν° μ—†μœΌλ‹ˆκΉŒ μ»΄ν„°λ‘± / λ‚˜μ€‘μ—λŠ” ν™”면에도 ν•΄λ΄μ•Όν•¨)
3. μƒ˜ν”Œ μ•± μ‹€ν–‰ ν•΄λ³΄κΈ°(μ•Œμ•„μ„œ κΉ”λ¦Ό)

728x90
λ°˜μ‘ν˜•
728x90
λ°˜μ‘ν˜•

tkinter : GUI에 λŒ€ν•œ ν‘œμ€€ Python μΈν„°νŽ˜μ΄μŠ€μ΄λ©° Window 창을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

"Tkinter μ‹€ν–‰μ‹œν‚€κΈ°"

더보기

1. python에 λ“€μ–΄κ°€μ„œ 터미널에 pip install tkλ₯Ό 적어 tkinter을 μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•΄μ€λ‹ˆλ‹€

2. μ—…κ·Έλ ˆμ΄λ“œκ°€ ν•„μš”ν•˜λ©΄ upgrade 쀄을 밑에 적어주면 λœλ‹€.

3. μ½”λ”© 고우

"μœˆλ„μš° μ°½ μƒμ„±ν•˜κΈ°"

더보기

import tkinter : 상단에 import tkinterλ₯Ό μ‚¬μš©ν•˜μ—¬ GUI λͺ¨λ“ˆμ„ ν¬ν•©μ‹œν‚΅λ‹ˆλ‹€. tkinter ν•¨μˆ˜μ˜ μ‚¬μš©λ°©λ²•μ€ tkinter."λ₯Ό μ΄μš©ν•˜                               μ—¬ μ‚¬μš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.

window=tkinter.Tk() : μœˆλ„μš° 이름=tkinter.TK()λ₯Ό μ΄μš©ν•˜μ—¬ κ°€μž₯ μƒμœ„ 레벨의 μœˆλ„μš° 창을 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

window.mainloop() : μœˆλ„μš° 이름.mainloop()λ₯Ό μ‚¬μš©ν•˜μ—¬ μœˆλ„μš° λ¦¬λ¦„μ˜ μœˆλ„μš° 창을 μœˆλ„μš°κ°€ μ’…λ£Œλ  λ•Œ κΉŒμ§€ μ‹€ν–‰μ‹œν‚΅λ‹ˆλ‹€.

                                     μƒμ„± ꡬ문과 반볡 ꡬ문 상에 μœ„μ ―μ„ μƒμ„œμ•„κ³  μ μš©ν•©λ‹ˆλ‹€.

tkinter.TK()λ₯Ό μ μš©ν•  경우 κ°€μž₯ 기본적인 μœˆλ„μš° 창이 μƒμ„±λ©λ‹ˆλ‹€.

"Window μ°½ μ„€μ •"

더보기

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON") : μœˆλ„μš°μ΄λ¦„.title("제λͺ©")을 μ΄μš©ν•˜μ—¬ μœˆλ„μš° 창의 제λͺ©μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

window.geometry("640x400+100+100": μœˆλ„μš°μ΄λ¦„.geometry("λ„ˆλΉ„x높이+xμ’Œν‘œ+yμ’Œν‘œ")λ₯Ό μ΄μš©ν•˜μ—¬ μœˆλ„μš° μ°½

                                                                      의 λ„ˆλΉ„μ™€ 높이, 초기 ν™”λ©΄ μœ„μΉ˜μ˜ xμ’Œν‘œμ™€ yμ’Œν‘œλ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

window.resizable(False, False) : μœˆλ„μš°μ΄λ¦„.resizeable(μƒν•˜, 쒌우)λ₯Ό μ΄μš©ν•˜μ—¬ μœˆλ„μš° 창의 μ°½ 크기 쑰절 κ°€λŠ₯ μ—¬                                                          λΆ€λ₯Ό μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. True둜 μ„€μ •ν•  경우 μœˆλ„μš° 창의 크기λ₯Ό μ‘°μ ˆν•  수 있                                                            μŠ΅λ‹ˆλ‹€.

 

window.mainloop() 

 * Tip : resizeable() 을 μ μš©ν•  λ•Œ, True=1, False=0을 μ˜λ―Έν•˜μ—¬ μƒμˆ˜λ₯Ό μž…λ ₯해도 적용이 κ°€λŠ₯ν•©λ‹ˆλ‹€.

μœˆλ„μš° 창의 이름이 CHO SU HYEON둜 μ„€μ •λ˜μ—ˆμœΌλ©° 크기와 초기 ν™”λ©΄ μœ„μΉ˜, μœˆλ„μš° 팑의 크기 쑰절 λΆˆκ°€λ‘œ μ„€μ •λœ 것을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

 

"Widget 배치"

더보기

import tkinter

 

window=tkinter.Tk()

 

window.title("CHO SU HYEON")

window.geometry("640x400+100+100")

window.resizable(False, False)

 

label=tkinter.Label(window, text="μ•ˆλ…•ν•˜μ„Έμš”.") μœ„μ ―이름=tkinter.Label(μœˆλ„μš° μ°½, text="λ‚΄μš©")을 μ‚¬μš©ν•˜μ—¬ μœˆλ„ 우 창에 Label μœ„μ ―μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. / μœ„μ ―μ΄λ¦„.pacl()을 μ‚¬μš©ν•˜μ—¬ μœ„μ ―μ„ λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

label.pack() 

 

window.mainloop()

속성을 μ„€μ •ν•˜μ§€ μ•Šμ•„ κΈ°λ³Έ μ†μ„±μœΌλ‘œ μ„€μ •λ˜μ–΄ κ°€μž₯ μ΅œμƒλ‹¨μ— 라벨이 λ°°μΉ˜λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

*였늘의 μ—λŸ¬

파일 이름을 tkinter둜 μ„€μ •ν•˜μ—¬ attribute μ—λŸ¬κ°€ μž‘λ™ν•˜μ—¬ 디버깅이 λ˜μ§€ μ•Šμ•˜λ‹€.

λ‹€μ‹œ μž‘λ™ν•˜κ³  λ‚˜κ°”λ‹€ λ“€μ–΄μ™”λŠ”λ°λ„ μž‘λ™ μ•ˆλ˜μ–΄ 파일의 제λͺ©μ΄ 였λ₯˜μ˜ μ£Ό μ›μΈμ΄λΌλŠ” 말을 많이 λ“€μ–΄μ„œ 

파일 이름을 tkinter2둜 λ°”κΎΈμ–΄ λ‹€μ‹œ μ‹€ν–‰ν•΄λ³΄λ‹ˆ λ‹€ν–‰νžˆ μ‹€ν–‰λ˜μ—ˆλ‹€!!

 

 

728x90
λ°˜μ‘ν˜•

+ Recent posts