Qt ํ์ฌ
์ด์
- ์ด์ ์ฒด์ ์ 3D API์ ๋ ๋ฆฝ์ ์ธ ์ถ์ํ๋ ๊ทธ๋ํฝ API์ ๋๋ค. ์๋ก์ด Qt ๊ทธ๋ํฝ ์คํ์ ํต์ฌ ๊ตฌ์ฑ ์์๋ RHI(๋ ๋๋ง ํ๋์จ์ด ์ธํฐํ์ด์ค) ๋ ์ด์ด๋ฅผ ์ฌ์ฉํ์ฌ OpenGL๋ฟ๋ง ์๋๋ผ Vulkan, Metal ๋ฐ Direct 3D API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Qt Quick ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ๋ํ๋ ์ฅ๋ฉด ๋ ๋๋ง ์์ง์ ๋๋ค.
- 3D ๋ฐ 2D ๊ทธ๋ํฝ ์์๋ฅผ ๊ฒฐํฉํ์ฌ Qt Quick์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ๊ธฐ ์ํ API๊ฐ ํฌํจ๋ Qt Quick 3D ๋ชจ๋์ ๋๋ค. Qt Quick 3D๋ฅผ ์ฌ์ฉํ๋ฉด QML์ ์ฌ์ฉํ์ฌ UIP ํ์์ ์ฌ์ฉํ์ง ์๊ณ ๋ 3D ์ธํฐํ์ด์ค ์์๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. Qt Quick 3D์์๋ 2D ๋ฐ 3D์ฉ์ผ๋ก ํ๋์ ๋ฐํ์(Qt Quick), ํ๋์ ์ฅ๋ฉด ๋ ์ด์์, ํ๋์ ์ ๋๋ฉ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์๊ฐ์ ์ธํฐํ์ด์ค ๊ฐ๋ฐ์๋ Qt Design Studio๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋์ QML์ Qt 3D ๋๋ 3D Studio์ ์ฝํ ์ธ ์ ํตํฉํ ๋ ํฐ ์ค๋ฒํค๋์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ 2D์ 3D ๊ฐ์ ํ๋ ์ ์์ค์์ ์ ๋๋ฉ์ด์ ๋ฐ ๋ณํ์ ๋๊ธฐํํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ฝ๋ ๋ฒ ์ด์ค๋ฅผ ๋ ์์ ๊ตฌ์ฑ ์์๋ก ์ฌ๊ตฌ์ฑํ๊ณ ๊ธฐ๋ณธ ์ ํ์ ํฌ๊ธฐ๋ฅผ ์ค์
๋๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ ๋ฐ ์ ๋ฌธ ๊ตฌ์ฑ ์์๋ ์นดํ๋ก๊ทธ ์คํ ์ด๋ฅผ ํตํด ๋ฐฐํฌ๋๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
Qt ๋ง์ผ ํ๋ ์ด์ค . - QML์ ๋๋์ ์ธ ํ๋ํ:
- ๊ฐ๋ ฅํ ํ์ดํ ์ง์.
- QML์ C++ ํํ๊ณผ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ์ปดํ์ผํ๋ ๊ธฐ๋ฅ.
- ์์ ํ JavaScript ์ง์์ ์ต์ ์ผ๋ก ๋ง๋ค๊ธฐ(๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ JavaScript ์์ง์ ์ฌ์ฉํ๋ ค๋ฉด ๋ง์ ๋ฆฌ์์ค๊ฐ ํ์ํ๋ฏ๋ก ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ์ ๊ฐ์ ์ฅ๋น์์ QML์ ์ฌ์ฉํ ์ ์์ต๋๋ค).
- QML ๋ฒ์ ๊ด๋ฆฌ ๊ฑฐ๋ถ.
- QObject ๋ฐ QML์ ์ค๋ณต๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํตํฉ(๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ์ค์ด๊ณ ์์ ์๋๋ฅผ ๋์ ๋๋ค).
- ๋ฐํ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์ฑ์์ ๋ฒ์ด๋ ์ปดํ์ผ ํ์ ์์ฑ์ ์ ํธํฉ๋๋ค.
- ๋น๊ณต๊ฐ ๋ฉ์๋์ ์์ฑ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ๊ตฌ์ฑ ์์๋ฅผ ์จ๊น๋๋ค.
- ๋ฆฌํฉํฐ๋ง ๋ฐ ์ปดํ์ผ ํ์ ์ค๋ฅ ์ง๋จ์ ์ํ ๊ฐ๋ฐ ๋๊ตฌ์์ ํตํฉ์ด ํฅ์๋์์ต๋๋ค.
- PNG ์ด๋ฏธ์ง๋ฅผ ์์ถ๋ ํ ์ค์ฒ๋ก ๋ณํํ๊ฑฐ๋ ์ ฐ์ด๋ ๋ฐ ๋ฉ์๋ฅผ ํน์ ํ๋์จ์ด์ ์ต์ ํ๋ ๋ฐ์ด๋๋ฆฌ ํ์์ผ๋ก ๋ณํํ๋ ๋ฑ ์ปดํ์ผ ์ ๊ทธ๋ํฝ ๊ด๋ จ ์์ฐ์ ์ฒ๋ฆฌํ๋ ๋๊ตฌ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
- ํ ๋ง์ ์คํ์ผ์ ์ํ ํตํฉ ์์ง์ ๋ด์ฅํ์ฌ ๋ค์ํ ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ ํ๋ซํผ์ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต๋๋ Qt Widgets ๋ฐ Qt Quick ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ์์ ๊ตฌํํ ์ ์์ต๋๋ค.
- ๋น๋ ์์คํ
์ผ๋ก QMake ๋์ CMake๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ๋์์ต๋๋ค. QMake๋ฅผ ์ฌ์ฉํ ์ ํ๋ฆฌ์ผ์ด์
๊ตฌ์ถ ์ง์์ ๊ณ์ ์ ์ง๋์ง๋ง Qt ์์ฒด๋ CMake๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค. CMake๊ฐ ์ ํ๋ ์ด์ ๋ ์ด ํดํท์ด C++ ํ๋ก์ ํธ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ๋ง์ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ง์๋๊ธฐ ๋๋ฌธ์
๋๋ค. QMake๋ฅผ ๋์ฒดํ๋ค๊ณ ์ฃผ์ฅํ๋ Qbs ์กฐ๋ฆฝ ์์คํ
์ ๊ฐ๋ฐ,
๊ณ์๋๋ ์ง์ญ ์ฌํ. - ๊ฐ๋ฐ ์ค์ C++17 ํ์ค์ผ๋ก ์ ํํฉ๋๋ค(์ด์ ์๋ C++98์ด ์ฌ์ฉ๋์์ต๋๋ค). Qt 6์ ๋ง์ ์ต์ C++ ๊ธฐ๋ฅ์ ๋ํ ์ง์์ ๊ตฌํํ ๊ณํ์ด์ง๋ง ๋ ๊ฑฐ์ ํ์ค์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ฝ๋์์ ํ์ ํธํ์ฑ์ ์์ง ์์ต๋๋ค.
- C++ ์ฝ๋์์ QML ๋ฐ Qt Quick์ ์ ๊ณต๋๋ ์ผ๋ถ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. QObject ๋ฐ ์ ์ฌํ ํด๋์ค์ ๋ํ ์๋ก์ด ์์ฑ ์์คํ ์ ํฌํจํ๋ ๋ฐฉ๋ฒ์ด ์ ์๋ฉ๋๋ค. QML์์ ๋ฐ์ธ๋ฉ ์์ ์ ์ํ ์์ง์ด Qt ์ฝ์ด์ ํตํฉ๋์ด ๋ฐ์ธ๋ฉ์ ๋ํ ๋ก๋ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ค์ด๋ค๊ณ Qt Quick๋ฟ๋ง ์๋๋ผ Qt์ ๋ชจ๋ ๋ถ๋ถ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
- Python, WebAssembly ๋ฑ ์ถ๊ฐ ์ธ์ด์ ๋ํ ์ง์์ด ํ์ฅ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru