์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

PySide6 GUI & EXE ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ฐ•์˜ (PyQt5)

์žฌ๋ฏธ์—†๋Š” Widget ์†Œ๊ฐœ์‹ ๊ฐ•์˜ ์•„๋‹™๋‹ˆ๋‹ค. ์ œ๊ฐ€ ํŒ๋งค ์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ๋กœ๊ทธ์ธ ํ™”๋ฉด, ๋ฉ”์ธ ํ™”๋ฉด์„ ๋˜‘๊ฐ™์ด ๋”ฐ๋ผ ๋งŒ๋“œ๋Š” ์‹ค์Šต ํ”„๋กœ์ ํŠธ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[์›น ๊ฐœ๋ฐœ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • python

  • pyside6

  • pyqt5

  • qt-designer

PySide6 ๋˜๋Š” PyQt5 ๊ฐ•์˜๋ฅผ
์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด ์ง‘์ค‘ํ•ด ์ฃผ์„ธ์š” ๐Ÿ’ก

์ด๋ฒˆ ๊ฐ•์˜๋Š” ์•„๋ž˜ ์‚ฌ์ง„์˜ ๋กœ๊ทธ์ธ UI, ๋ฉ”์ธ UI๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ด์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ํŒ๋งค๋ฅผ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๊ฐ•์˜, ๋ธ”๋กœ๊ทธ ์ž๋ฃŒ๋ฅผ ์ฐพ์œผ๋ฉด์„œ ์ •๋ง ๊ถ๊ธˆํ–ˆ๋˜ ์งˆ๋ฌธ๋“ค์ž…๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์ˆ˜๋ฐฑ๋งŒ ์›์–ด์น˜ ๊ฐœ๋ฐœ ๊ฐ•์˜์— ํˆฌ์žํ•ด๋„ ์•„๋ž˜ ์งˆ๋ฌธ์˜ ๋‹ต๋ณ€ ๋‚ด์šฉ์€ ์–ด๋””์—์„œ๋„ ์ฐพ๊ธฐ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

Udemy ์—ฌ๊ธฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Inflearn, Fastcampus ๋“ฑ ๊ฐ•์˜ ์—„์ฒญ ์‚ฌ์„œ ์ฐพ์•„๋ด„

  • '๋กœ๊ทธ์ธ UI๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์ง€?'
  • '๋กœ๊ทธ์ธ ๋กœ์ง + ์„œ๋ฒ„์˜ ๋™์ž‘ ๋ฐฉ์‹์€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜์ง€?'
  • '๋กœ๊ทธ์ธ ์„ฑ๊ณตํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ํ•˜์ง€?'
  • '1, 2๋Œ€์˜ PC์—์„œ๋งŒ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?'
  • 'Main UI์—์„œ ๋กœ์ง์„ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋ฉˆ์ถ”๋„ค? Thread ๋ฐฉ์‹์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜์ง€?'

 

ํŒ๋งค ๊ฐ€๋Šฅํ•œ ์ˆ˜์ค€์˜ GUI ๊ฐœ๋ฐœ ๊ฐ•์˜๊ฐ€ ํ•„์š”ํ•˜์ง„ ์•Š์œผ์‹ ๊ฐ€์š”?

์ €๋Š” ๋””์ž์ธ Lv.1 ์ดˆ์‹ฌ์ž ์ˆ˜์ค€์˜ ์‹ค๋ ฅ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์ œ๊ฐ€ PySide6 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ์˜ˆ์œ ๋””์ž์ธ์˜ GUI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋˜ ๋…ธํ•˜์šฐ๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์™ธ์ฃผ ๊ฐœ๋ฐœ์„ ํ•˜๋˜ ์ €์˜ '๋””์ž์ธ 1๋„ ๋ชฐ๋ผ๋„ ์ „๋ฌธ๊ฐ€์ฒ˜๋Ÿผ ๋””์ž์ธํ•˜๋Š” ๋ฐฉ๋ฒ•'๋„ ์•Œ๋ ค๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์„ ํŒ๋งคํ•˜์‹œ๋ ค๋ฉด PyQt5๊ฐ€ ์•„๋‹Œ PySide6์„ ์‚ฌ์šฉํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฒˆ PySide6 ๊ฐ•์˜์˜ ํ•ต์‹ฌ Point๋Š” 'ํŒ๋งค ํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ๋ฒ•'์ž…๋‹ˆ๋‹ค.

์ดˆ๋ณด์ž ์ˆ˜์ค€์˜ ๋Œ€์ƒ์œผ๋กœ ํ•œ ๊ฐ•์˜๊ฐ€ ๊ฐ€์žฅ ์ž˜ ํŒ”๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ์ธ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ•์˜๊ฐ€ ๋†’์€ ์ˆ˜์ค€์˜ ์ง€์‹์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•, ์ž๋ฐ” ๋ฌธ๋ฒ•, ๊ท€์—ฌ์šด ํ† ์ด ํ”„๋กœ์ ํŠธ ์ˆ˜์ค€์„ ๋งŒ๋“œ๋Š” ๋ฐ์—์„œ ๊ทธ์น˜์ง€์š”. ์ด๋ฒˆ PySide6 ๊ฐ•์˜๋Š” ์ œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ํŒ๋งคํ•˜๊ธฐ ์œ„ํ•ด ๊ฒช์—ˆ๋˜ ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ๋ชจ๋“  ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๋‹ด์•˜์Šต๋‹ˆ๋‹ค. ๊ฒจ์šฐ 1,000์ค„์งœ๋ฆฌ ์ฝ”๋“œ ์งœ๋Š”๋ฐ ๋ช‡ ๋‹ฌ์”ฉ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋งจ๋•…์— ํ—ค๋”ฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋‚˜์š”? ์ œ ๊ฐ•์˜ ํ•˜๋‚˜๋กœ ์‹œ๊ฐ„์„ ์•„๋ผ์…จ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ, ๋‹น์žฅ PySide6 GUI๋ฅผ EXE ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด?

๊ฐ•์˜ ๋งจ ๋งˆ์ง€๋ง‰์—๋Š” ํ•ญ์ƒ ๊ฐ•์˜์— ์‚ฌ์šฉ๋œ ์ฝ”๋“œ ์ „๋ฌธ์ด ํฌํ•จ๋˜๋Š”๋ฐ์š”. ์ œ ๊ฐ•์˜๋ฅผ 200% ํ™œ์šฉํ•˜์‹œ๋Š” ๋ฐฉ๋ฒ•์€ ์ตœ์ข… ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์‹คํ–‰์‹œํ‚ค์‹œ๋ฉด์„œ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ํ•„์š”ํ•œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์กฐ๊ธˆ์”ฉ ๋ณ€ํ˜•ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์™„์„ฑ๋œ ์ฝ”๋“œ๊ฐ€ ์ œ๊ณต๋˜๋Š”๋ฐ ๊ตณ์ด 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์ง€ ๋งˆ์‹œ๊ณ , ์ œ๊ฐ€ ๋งŒ๋“ค์–ด ๋†“์€ ์ฝ”๋“œ ๋ฒ ์ด์Šค์—์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ๋ง๋ถ™์—ฌ ๋‚˜๊ฐ€์‹ ๋‹ค๋ฉด ์‹œ๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๋ป”ํ•œ Widget ์‚ฌ์šฉ๋ฒ• ๋ง๊ณ , ์‹ค์šฉ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”??

์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐœ๋ฐœ์ž ์ถœ์‹ ์˜ ์‚ฌ์—…๊ฐ€ ๊น€์ง€์œ ์ž…๋‹ˆ๋‹ค.

์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ์ฝ”๋”ฉ ์œ ํŠœ๋ธŒ๋ฅผ ์šด์˜ํ•˜๊ณ , ์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ์ œ ์‚ฌ์—…์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ์ž๋™ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ์„ ํŒ๋งคํ•˜๋ฉด์„œ, '๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ, QThread์„ ํ™œ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด ๊ถ๊ธˆํ•œ๋ฐ ๋Œ€์ฒด ์™œ ๊ฐ•์˜๊ฐ€ ์—†์ง€? ์–ด๋””์— ์žˆ๋Š” ๊ฑฐ์•ผ?'๋ผ๋Š” ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ์Šต๋‹ˆ๋‹ค.

 

'PySide6 GUI & EXE ํŒจํ‚ค์ง• ๊ฐ•์˜'๊ฐ€ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ

  • ๋กœ๊ทธ์ธ ํ™”๋ฉด, ๋ฉ”์ธ ํ™”๋ฉด์œผ๋กœ์˜ ์ „ํ™˜ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. (์„œ๋ฒ„ ๋‚ด์šฉ์€ ํฌํ•จ X)
  • ์™ธ์ฃผ ๊ฐœ๋ฐœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์‹ค์šฉ์ ์ธ ์œ„์ ฏ๋“ค๋งŒ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ๋งˆ๋ฌด๋ฆฌ๋กœ EXE ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์•Œ๋ ค๋“œ๋ ค์š”.

 

์™œ ๊น€์ง€์œ  ๋‹˜ ๊ฐ•์˜ ๋“ค์–ด์•ผ ํ•จ?

์ œ ๊ฐ•์˜์˜ ์ฐจ๋ณ„์„ฑ์€ '์ œ๊ฐ€ ์ง์ ‘ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ฉฐ ์–ป์€ ๋…ธํ•˜์šฐ'๋ฅผ ์•Œ๋ ค๋“œ๋ฆฌ๋Š” ๊ฐ•์˜๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์ˆ˜์ค€์˜ GUI๊ฐ€ ์•„๋‹Œ ๋””์ž์ธ 1๋„ ๋ชจ๋ฅด๋Š” ์ œ๊ฐ€ ์ „๋ฌธ ์™ธ์ฃผ ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๋ฐ€ ๋…ธํ•˜์šฐ๋„ ๊ฐ€๋ฅด์ณ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

๊ฐ•์˜ ๊ตฌ๋งค ์•ˆ ํ•ด๋„ ๋˜๋Š” ์‚ฌ๋žŒ

  • ์ด๋ฏธ ๊ฐœ๋ฐœ ์งฌ๋ฐฅ ์žˆ์–ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ˆ ๋ฐ›๊ณ  ์ž˜ ํŒ๋งคํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ
  • ๋ธ”๋กœ๊ทธ ์„œ์ด์ถ” GUI๋ฅผ ๋งŒ๋“ค๊ฑด๋ฐ ์„œ์ด์ถ” Logic์€ ์ œ๊ณต ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์ฝ”๋”ฉ ๊ธฐ๋ณธ๊ธฐ๊ฐ€ ์žกํ˜€์žˆ๋Š” ์‚ฌ๋žŒ

  • GUI๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ฑฐ๋‚˜, EXE ํŒŒ์ผ๋กœ ํŒจํ‚ค์ง•์ด ํ•„์š”ํ•œ ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • Python

์•ˆ๋…•ํ•˜์„ธ์š”
๊น€์ง€์œ ์ž…๋‹ˆ๋‹ค.

1,565

๋ช…

์ˆ˜๊ฐ•์ƒ

35

๊ฐœ

์ˆ˜๊ฐ•ํ‰

97

๊ฐœ

๋‹ต๋ณ€

4.5

์ 

๊ฐ•์˜ ํ‰์ 

9

๊ฐœ

๊ฐ•์˜

๊ธฐ์ˆ ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ด ์•„๋‹Œ, ์‚ฌ๋žŒ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋ฏฟ๋Š” ๊ฐœ๋ฐœ์ž ๊น€์ง€์œ ์ž…๋‹ˆ๋‹ค.


- ์Šคํƒ€ํŠธ์—… CEO + CTO๋กœ ์ •๋ถ€์ง€์›์‚ฌ์—…๋ฐ›๋‹ค๊ฐ€ ํ˜„์žฌ๋Š” ํ”„๋ฆฌ๋žœ์„œ๊ฐ€ ๋œ ๊น€์ง€์œ ์ž…๋‹ˆ๋‹ค
- ์ž๋™ํ™” ํ”„๋กœ๊ทธ๋žจ ์ œ์ž‘ ํŒ๋งค & ๊ฐ•์˜ ์ œ์ž‘
- ๋ถ€์‚ฐ๋Œ€ํ•™๊ต ์ •๋ณด์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ์กธ์—…
- ๋ธ”๋กœ๊ทธ : https://blog.naver.com/lread90
- ์œ ํŠœ๋ธŒ : https://www.youtube.com/channel/UCDl-10cmslZewQn-6o8usqQ

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

12๊ฐœ โˆ™ (3์‹œ๊ฐ„ 8๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!