Muloqot oynalarini dasturlash.
Mavzu : Muloqot oynalarini dasturlash. Reja: 1. Muloqot oynalarini boshqarish jarayonlarini dasturlash. 2. Qt muhiti Dialog oynalari haqida ma’lumot,ularning xossa va hodisalari.
1. Muloqot oynalarini boshqarish jarayonlarini dasturlash. Jarayon elementi Jarayon elementi bu operatsiyaning borishini ko'rsatadigan va chapdan o'ngga to'ldiradigan vidjet. Ko'rsatkichning to'liq to'lishi operatsiya tugaganligi haqida xabar beradi. Ushbu vidjet dasturda uzoq muddatli harakatlarni bajarayotganda talab qilinadi. Bu foydalanuvchiga dastur qotmaganligini, va ishlayotganligini bildiradi. Bundan tashqari, u amallarning qanchasi qilinganligi va bajarilishi kerak bo'lgan narsalarni ko'rsatadi. Jarayon elementi vidjeti QProgessBar sinfida QProgressBar sarlavha faylida aniqlangan. Odatda jarayonni elementi gorizontaldir, lekin buni SetOrientation(Qt :: vertikal) qiymati bilan vertical ko’rinishga o'zgartirish mumkin - shundan so'ng u vertikal holatda joylashadi. Rasmda keltirilgan quyidagi misol, siljish jarayon elementidan foydalanishni namoyish etadi. Step tugmasini bosish indikator qiymatini bir qadamga oshiradi. Reset tugmasini bosish indikator qiymatini yangilaydi. Jarayon elementining ishlashi #include <QApplication> #include "Progress.h" int main (int argc, char** argv) { QApplication app(argc, argv); Progress progress; progress.show(); return app.exec(); } Quyidagi dasturda QWidget-dan meros bo'lib o'tgan Progress.h fayli ko'rsatilgan. Sinf ikkita atributni o'z ichiga oladi: jarayon progressi vidjetiga
ko'rsatkich va qadam raqamini aks ettiruvchi butun son. Sinfda ikkita slot aniqlangan: slotStep() va slotReset() . Birinchisi, qadamni birga oshirish, ikkinchisi - jarayon ko'rsatkichini nolga o'rnatish. #ifndef _Progress_h_ #define _Progress_h_ #include <QWidget> class QProgressBar; class Progress : public QWidget { Q_OBJECT private: QProgressBar* m_pprb; int m_nStep; public: Progress(QWidget* pobj = 0); public slots: void slotStep (); void slotReset(); }; #endif //_Progress_h_ 2. Qt muhiti Dialog oynalari haqida ma’lumot ,ularning xossa va hodisalari . Dialog oynasi foydalanuvchi va dastur o'rtasidagi o'zaro aloqani ta'minlovchi markaziy element hisoblanadi. Ushbu vidjet bir qator sozlamalarni o'z ichiga olib, ularning o'zgarishi dastur bajarilishini o’zgarishiga olib keladi. Dialog oynalari har doim yuqori darajali vidjetlar va ular alohida sarlavhasiga ega. Ular uchta asosiy toifaga bo'linishi mumkin: Shaxsiy oynalar; Standart oynalar; xabarlar oynasi.
Dialog oynalarini yaratish qoidalari Dialogli oynalar har qanday dastur uchun zarurdir va ularni yaratish odatda dasturchi bajarishi kerak bo'lgan odatiy ishdir. Dialog oynasini yaratish aslida kerakli elementlarni joylashtirishdan ko'proq narsani o'z ichiga oladi. O'qishga vaqt sarflamasligi, balki darhol ishlashni boshlashi uchun foydalanuvchiga dialog oynasi bilan ishlashning intuitiv usulini taqdim etish muhimdir. Intuitiv ishlashni ta'minlash uchun quyidagi qoidalarga rioya qilish kerak: dialog oynasini erkin va sodda saqlashga harakat qiling. Dastur sozlamalari dialog oynasida faqat asosiy tugmachalar kerak bo'ladi, masalan: Ok, Cancel(Bekor qilish) va Apply(Qo'llash); vidjetlarni mantiqiy guruhlarga ajratib, ramkalar va chiziqlar bilan ajratish. Ajratish uchun gorizontal va vertikal chiziqlardan foydalaning; Hech qachon dialog oyna tarkibini siljitib ko’rsatiladigan soha sifatida tayyorlab bo'lmaydi. Agar oynada ko'plab elementlar bo'lsa, ularni guruhlarga bo'lishga harakat qiling va ularni yorliqlar yordamida joylashtiring; dialog oynasidagi yorliqlardagi yozuvlar bir nechta satrdan joy olishi tavsiya etilmaydi, bu qidiruvni murakkablashtiradi; o’lchami o’zgarmaydigan dialog oynalarini yaratishdan saqlaning. Foydalanuvchi har doim o'z xohishiga ko'ra oyna hajmini oshirishi yoki kamaytirishi kerak; murakkab oynalarni qo'shimcha Help yordam tugmachasi bilan tayyorlash yaxshiroq, u bilan kontekstli yordam oynasi ochilishi kerak; dialog oynalarini ochadigan menyu bo’limlari (…) bilan tugashi kerak, masalan Open ... . Foydalanuvchi menyu bo’limiga qarab dialog oynasini ochishini oldindan bilishi uchun shunday qilish tavsiya etiladi; dialog oynalariga menyu qo'shmaslikka harakat qiling. Menyu asosiy dastur oynasida ishlatilishi kerak; Imkoniyat bo'lsa, foydalanuvchilarga tanish bo'lgan standart vidjetlardan foydalaning. Esda tutingki, yangi boshqarish vositalarini o'rganish qo'shimcha vaqt talab qilishi mumkin;
Sozlamalarni ko'rsatish uchun turli rangni ishlatishdan saqlaning. Aksariyat hollarda matn eng yaxshi alternativadir. Axir, bir xil rang turli mamlakatlarda har xil semantik ma'noga ega bo'lishi mumkin. Bundan tashqari, rang ajrata olmaydigan foydalanuvchilar uchun bu noqulay bo'lmasligi kerak; foydalanuvchi nafaqat sichqoncha bilan, balki klaviatura bilan ham dialog oynasi bilan ishlashi kerakligini unutmang. Buning uchun barcha oynali elementlarni tezkor tugmachalar bilan ta'minlash kerak, ya’ni biror harfni <Alt> tugmasibilan birga bosib kerakli elementga yo'naltirish imkoniyati bo’lishi kerak. QDialog sinfi QDialog sinfi Qt sinf ierarxiyasidagi barcha dialog oynalari uchun asosiy sinfdir. Har qanday vidjetni yuqori darajadagi vidjetga aylantirish bilan dialog oynasiga aylantirish mumkin, lekin, barcha dialog oynalariga kerak bo'ladigan bir qator xususiyatlarni taqdim etadigan QDialog sinfidan foydalanish yanada qulayroq. Dialogli oynalar ikki guruhga bo'lingan: modal; modallmas. Modallik va modallmaslik rejimi mos ravishda QDialog ::setModal () va QDialog:: isModal () usullari yordamida o'rnatilishi mumkin. True qiymat - modal va False - modallmaslikni anglatadi. Modal dialog oynalari Ushbu oynalar odatda muhim xabarlarni namoyish qilish uchun ishlatiladi. Masalan, ba'zida ayrim xato xabarlarga, foydalanuvchi dasturni ishlatishni davom ettirishdan oldin javob berishi kerak. Modal oynalar dasturni to'xtatadi va u ishlashni davom ettirish uchun bunday oynani yopish kerak. Bunday hollarda modal dialog oynasi foydalanuvchining e'tiborini jalb qilish uchun juda mos keladi. Ilovani blokirovka qilish uchun faqat dialog oynasi uchun hodisalar qatori ishga tushiriladi va boshqa klaviatura, sichqoncha va dasturdagi boshqa hodisalar e'tiborga olinmaydi. Ushbu hodisa exec() slotini chaqirish bilan boshlanadi, u dialog oynasi yopilgandan keyin butun sonni qaytaradi. Ushbu qiymat bosilgan