Qt ကုမ္ပဏီ
သော့
- လည်ပတ်စနစ်၏ 3D API နှင့် ကင်းလွတ်သော စိတ္တဇဂရပ်ဖစ် API။ Qt ဂရပ်ဖစ် stack အသစ်၏ အဓိက အစိတ်အပိုင်းမှာ Qt Quick အပလီကေးရှင်းများသာမက Vulkan၊ Metal နှင့် Direct 3D APIs များ၏ထိပ်ပိုင်းတွင်လည်း RHI (Rendering Hardware Interface) အလွှာကို အသုံးပြု၍ စွမ်းအားပေးသည့် အခင်းအကျင်း တင်ဆက်ခြင်းအင်ဂျင်ဖြစ်သည်။
- 3D နှင့် 2D ဂရပ်ဖစ်ဒြပ်စင်များကိုပေါင်းစပ်ပြီး Qt Quick ကိုအခြေခံ၍ အသုံးပြုသူအင်တာဖေ့စ်များဖန်တီးရန်အတွက် API ပါရှိသော Qt Quick 3D မော်ဂျူး။ Qt Quick 3D သည် UIP ဖော်မတ်ကို အသုံးမပြုဘဲ 3D အင်တာဖေ့စ်ဒြပ်စင်များကို သတ်မှတ်ရန် QML ကို အသုံးပြုနိုင်သည်။ Qt Quick 3D တွင်၊ သင်သည် runtime တစ်ခု (Qt Quick)၊ မြင်ကွင်းတစ်ခု အပြင်အဆင်တစ်ခုနှင့် 2D နှင့် 3D အတွက် ကာတွန်းဘောင်တစ်ခု၊ နှင့် အမြင်အာရုံမျက်နှာပြင် ဖွံ့ဖြိုးတိုးတက်မှုအတွက် Qt Design Studio ကို သုံးနိုင်သည်။ မော်ဂျူးသည် Qt 3D သို့မဟုတ် 3D Studio မှ အကြောင်းအရာများနှင့် QML ပေါင်းစပ်သည့်အခါ ကြီးမားသော overhead ကဲ့သို့သော ပြဿနာများကို ဖြေရှင်းပေးကာ 2D နှင့် 3D ကြားဘောင်အဆင့်တွင် ကာတွန်းများနှင့် အသွင်ပြောင်းမှုများကို တစ်ပြိုင်တည်းလုပ်ဆောင်နိုင်စွမ်းကို ထောက်ပံ့ပေးသည်။
- ကုဒ်အခြေခံအား သေးငယ်သော အစိတ်အပိုင်းများအဖြစ် ပြန်လည်ဖွဲ့စည်းခြင်းနှင့် အခြေခံထုတ်ကုန်၏ အရွယ်အစားကို လျှော့ချခြင်း။ ကက်တလောက်စတိုးမှတဆင့် ဖြန့်ကျက်ထားသော အပိုပရိုဂရမ်များအဖြစ် ဆော့ဖ်ဝဲအင်ဂျင်နီယာကိရိယာများနှင့် အထူးပြုအစိတ်အပိုင်းများကို ပံ့ပိုးပေးပါမည်။
Qt စျေးကွက် . - QML ၏ သိသာထင်ရှားသော ခေတ်မီခြင်း-
- ခိုင်မာသောစာရိုက်ခြင်းပံ့ပိုးမှု။
- QML ကို C++ ကိုယ်စားပြုခြင်းနှင့် စက်ကုဒ်အဖြစ် စုစည်းနိုင်ခြင်း။
- JavaScript အပြည့်အစုံကို ပံ့ပိုးပေးသည့် ရွေးချယ်မှုတစ်ခုပြုလုပ်ခြင်း (အင်္ဂါရပ်အပြည့်ရှိသော JavaScript အင်ဂျင်ကို အသုံးပြု၍ မိုက်ခရိုကွန်ထရိုလာများကဲ့သို့သော စက်ပစ္စည်းများတွင် QML အသုံးပြုခြင်းကို တားဆီးသည့် အရင်းအမြစ်များစွာ လိုအပ်သည်)။
- QML တွင် ဗားရှင်းထည့်သွင်းခြင်းကို ငြင်းဆိုခြင်း။
- QObject နှင့် QML တွင် ထပ်နေသော ဒေတာဖွဲ့စည်းပုံများကို ပေါင်းစည်းခြင်း (မှတ်ဉာဏ်သုံးစွဲမှုကို လျှော့ချပြီး စတင်မှုကို မြန်ဆန်စေမည်)။
- compile-time ထုတ်လုပ်ခြင်းကို ဦးစားပေး၍ ဒေတာတည်ဆောက်ပုံများ လည်ပတ်ချိန်မှ ရုန်းထွက်ခြင်း
- သီးသန့်နည်းလမ်းများနှင့် ဂုဏ်သတ္တိများကို အသုံးပြုခြင်းဖြင့် အတွင်းအစိတ်အပိုင်းများကို ဖုံးကွယ်ထားပါ။
- ပြန်လည်ဖြည့်သွင်းခြင်းနှင့် အချိန်ပိုင်းအမှားရှာဖွေခြင်းအတွက် ဖွံ့ဖြိုးတိုးတက်ရေးကိရိယာများဖြင့် ပိုမိုကောင်းမွန်စွာပေါင်းစပ်ခြင်း။
- PNG ပုံများကို ဖိသိပ်ထားသော ပုံစံများအဖြစ်သို့ ပြောင်းလဲခြင်း သို့မဟုတ် သီးခြား hardware အတွက် အကောင်းဆုံး binary ဖော်မတ်များအဖြစ် ပြောင်းလဲခြင်းကဲ့သို့သော ဂရပ်ဖစ်ဆိုင်ရာ ပိုင်ဆိုင်မှုများကို ပြုစုရန် ကိရိယာများကို ပေါင်းထည့်ခြင်း။
- ကွဲပြားသော မိုဘိုင်းနှင့် ဒက်စတော့ပလက်ဖောင်းများမှ ဇာတိဖြစ်သော Qt Widgets နှင့် Qt Quick ကို အခြေခံ၍ အပလီကေးရှင်းများ၏ အသွင်အပြင်ကို ရရှိစေမည့် အပြင်အဆင်များနှင့် စတိုင်များအတွက် ပေါင်းစပ်အင်ဂျင်ကို ထည့်သွင်းထားသည်။
- တည်ဆောက်မှုစနစ်အဖြစ် QMake အစား CMake ကို အသုံးပြုရန် ဆုံးဖြတ်ခဲ့သည်။ QMake ကို အသုံးပြု၍ အပလီကေးရှင်းများ တည်ဆောက်ခြင်းအတွက် ပံ့ပိုးမှု ဆက်လက်ရှိနေမည်ဖြစ်သော်လည်း Qt ကိုယ်တိုင်က CMake ကို အသုံးပြု၍ တည်ဆောက်မည်ဖြစ်သည်။ ဤကိရိယာအစုံသည် C++ ပရောဂျက် developer များကြားတွင် တွင်ကျယ်စွာအသုံးပြုနေပြီး ပေါင်းစပ်ဖွံ့ဖြိုးတိုးတက်မှုပတ်ဝန်းကျင်များစွာတွင် ပံ့ပိုးပေးသောကြောင့် CMake ကို ရွေးချယ်ခဲ့ခြင်းဖြစ်သည်။ QBs တပ်ဆင်မှုစနစ်အား QMake ၏ အစားထိုးမှုဟု ဆိုထားသည့်၊
တိုးချဲ့ အသိုင်းအဝိုင်း။ - ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်း C++17 စံနှုန်းသို့ ကူးပြောင်းခြင်း (ယခင်က C++98 ကို အသုံးပြုခဲ့သည်)။ Qt 6 သည် ခေတ်မီ C++ အင်္ဂါရပ်များစွာအတွက် အထောက်အပံ့ကို အကောင်အထည်ဖော်ရန် စီစဉ်ထားသော်လည်း အမွေအနှစ်စံနှုန်းများအပေါ် အခြေခံထားသော ကုဒ်များနှင့် နောက်ပြန်လိုက်ဖက်မှု မဆုံးရှုံးစေဘဲ။
- C++ ကုဒ်တွင် QML နှင့် Qt Quick အတွက် ပေးထားသည့် လုပ်ဆောင်ချက်အချို့ကို အသုံးပြုနိုင်သည်။ QObject နှင့် အလားတူအတန်းများအတွက် ပိုင်ဆိုင်မှုစနစ်အသစ် အပါအဝင် တင်ဆက်ပေးပါမည်။ QML မှ၊ bindings များနှင့်အလုပ်လုပ်ရန်အတွက်အင်ဂျင်ကို Qt core တွင်ပေါင်းစည်းမည်ဖြစ်ပြီး၊ bindings အတွက်ဝန်နှင့်မှတ်ဉာဏ်သုံးစွဲမှုကိုလျှော့ချကာ Qt ၏အစိတ်အပိုင်းအားလုံးအတွက်ရရှိနိုင်စေမည့် Qt Quick ကိုသာမက Qt ၏အစိတ်အပိုင်းအားလုံးအတွက်ပါရရှိနိုင်စေမည်ဖြစ်သည်။
- Python နှင့် WebAssembly ကဲ့သို့သော နောက်ထပ်ဘာသာစကားများအတွက် ပံ့ပိုးမှု တိုးချဲ့ထားသည်။
source: opennet.ru