1-laboratoriya ishi. Kalkulyator yaratish
I. Masalaning qo’yilishi
Kalkulyator yaratishda PushButton orqali biz 0 dan 9 gacha bo’lgan barcga raqamlar va amallarni (+ , - , * , / , +/- , % , = , .) kiritishda foydalandik , Label orqali biz muloqat oynasi sifatida foydalandik .
ISHNING MAQSADI
Qt dasturlash muhitida Kalkulyator yaratishni o’rganish. PushButton va Label bilan ishlash haqida tushuncha hosil qilish. O’zimiz hohlagan kengroq va ko’proq funksiyalarni bajaradigan kalkulyatorni yaratibgina qolmasdan balki o’zimizning fantaziyamiz asosida o’z dizaynimizga moslab maxsus ko’rinishda tayyorlash .
Nazariy qism
Bosish tugmasi yoki buyruq tugmasi har qanday grafik foydalanuvchi interfeysida eng ko'p ishlatiladigan vidjet bo'lishi mumkin. Kompyuterga biron bir amalni bajarishga buyruq berish yoki savolga javob berish uchun tugmani bosing (bosing). Odatda tugmalar OK, Ilova, Bekor qilish, Yopish, Ha, Yo'q va Yordam. Buyruq tugmasi to'rtburchaklar shaklida va odatda uning harakatini tavsiflovchi matn yorlig'ini aks ettiradi. Yorliq tugmachasini matndagi ampersand bilan afzal qilingan belgining oldiga qo'yish orqali ko'rsatish mumkin. Masalan: QPushButton * tugmasi = yangi QPushButton ( "& Yuklab olish" , bu ), Ushbu misolda yorliq Alt + D dir . Qarang QShortcut batafsil ( «&&», foydalanish haqiqiy belgisi ko'rsatish uchun) uchun hujjatlarni. Bosish tugmachalari matnli yorliqni, ixtiyoriy ravishda esa kichik belgini aks ettiradi. Ular konstruktorlar yordamida o'rnatilishi va keyinchalik setText () va setIcon () yordamida o'zgartirilishi mumkin . Agar tugma o'chirilgan bo'lsa, tugmachani "o'chirilgan" qilib ko'rsatish uchun GUI uslubiga nisbatan matn va belgining ko'rinishi manipulyatsiya qilinadi. Bosish tugmasi sichqoncha, bo'sh joy yoki klaviatura yorlig'i yordamida faollashtirilganda () bosilgan signalni chiqaradi . Tugma harakatini bajarish uchun ushbu signalga ulaning. Bosish tugmalari, shuningdek kamroq ishlatiladigan signallarni beradi, masalan bosilgan () va qo'yib yuborilgan (). Dialoglardagi buyruq tugmachalari sukut bo'yicha avtomatik sukut bo'yicha tugmachalardir, ya'ni ular klaviatura kiritish fokusini olganlarida avtomatik ravishda standart tugmachaga aylanadi. Standart tugma - foydalanuvchi dialog oynasida Enter yoki Return tugmachasini bosganda faollashtiriladigan tugmacha. Buni setAutoDefault () bilan o'zgartirishingiz mumkin . Shuni esda tutingki, avtomatik sukut bo'yicha tugmachalar odatiy tugma ko'rsatkichini chizish uchun zarur bo'lgan qo'shimcha joy ajratadi. Agar siz tugmachalar atrofida bu bo'shliqni xohlamasangiz, setAutoDefault (false) ga qo'ng'iroq qiling . Tugma vidjeti juda markaziy bo'lib, so'nggi o'n yil ichida juda ko'p farqlarni hisobga olgan holda o'sdi. Hozirda Microsoft uslublar qo'llanmasida Windows tugmachalarining o'nga yaqin holati ko'rsatilgan va matn barcha funktsiyalar kombinatsiyasi hisobga olingan holda yana o'nlab holatlar mavjudligini anglatadi. Umumiy qoida sifatida, dastur yoki dialog oynasi foydalanuvchi uni bosganda (masalan, Ilova, Bekor qilish, Yopish va Yordam) va vidjet keng, to'rtburchaklar shaklga ega bo'lishi kerak bo'lgan harakatni bajarganda tugmachani ishlating . matn yorlig'i. Amalni bajarishdan ko'ra (masalan, QFileDialog -ning yuqori o'ng burchagidagi tugmalar kabi) oyna holatini o'zgartiradigan kichik, odatda to'rtburchak tugmalar buyruq tugmalari emas, balki asbob tugmalari. Ushbu tugmalar uchun Qt maxsus sinf ( QToolButton ) ni taqdim etadi. Agar sizga o'tish harakati kerak bo'lsa (qarang setCheckable ()) yoki aylantirish satridagi o'qlar singari pastga tushirilganda faollashtirish signalini avtomatik ravishda takrorlaydigan tugma (qarang setAutoRepeat ()), buyruq tugmasi ehtimol siz istagan narsa emas. Agar shubhangiz bo'lsa, asbob tugmachasidan foydalaning. Tugmachaning kengligi 50 dan kichik yoki balandligi 30 dan kichikroq bo'lganda, macOS-da tugma burchaklari dumaloqdan kvadratga o'zgartiriladi. Ushbu xatti-harakatni oldini olish uchun setMinimumSize () funktsiyasidan foydalaning. Buyruq tugmachasining o'zgarishi menyu tugmachasidir. Ular faqat bitta buyruqni emas, balki bir nechtasini beradi, chunki ular bosilgandan so'ng ular menyu ochiladi. Qalqib chiquvchi menyuni bosish tugmasi bilan bog'lash uchun setMenu () usulidan foydalaning .
QLabel matn yoki rasmni namoyish qilish uchun ishlatiladi. Foydalanuvchilarning o'zaro ta'sirlashuvi ta'minlanmagan. Yorliqning vizual ko'rinishi turli xil usullar bilan tuzilishi mumkin va u boshqa vidjet uchun fnokemik mnemonik kalitni ko'rsatish uchun ishlatilishi mumkin. QLabel tarkibida quyidagi tarkib turlaridan biri bo'lishi mumkin: TarkibO'rnatishOddiy matnBir Pass QString uchun setText ().Boy matnBir Pass QString boy matnni o'z ichiga oladi setText ().Piksel xaritasiBir Pass QPixmap uchun setPixmap ().FilmBir Pass QMovie uchun setMovie ().RaqamBir Pass int yoki ikki uchun setNum matn raqamni aylantirgan ().Hech narsa yo'qBo'sh oddiy matn bilan bir xil. Bu sukut bo'yicha. Tomonidan belgilangan aniq (). Ogohlantirish: a o'tib qachon QString konstruktor yoki qiziqish setText (), QLabel u matn sifatida yoki boy matn, HTML 4 formatlash kœpligi sifatida matnni ko'rsatadi yo'qligini taxmin qilishga harakat qiladi, deb ishonch, siz kiritgan dezinfektsiya qilish. Siz setTextFormat () dasturiga aniq qo'ng'iroq qilishingiz mumkin , masalan, matn oddiy formatda bo'lishini kutganingizda, lekin matn manbasini boshqarolmaysiz (masalan, Internetdan yuklangan ma'lumotlarni ko'rsatishda). Ushbu funktsiyalardan biri yordamida tarkib o'zgarganda, avvalgi tarkib tozalanadi. Odatiy bo'lib, yorliqlar chap tomonga yo'naltirilgan, vertikal markazlashtirilgan matn va rasmlarni aks ettiradi , bu erda matndagi har qanday yorliq avtomatik ravishda kengaytiriladi . Biroq, QLabel ko'rinishini bir necha usul bilan sozlash va nozik sozlash mumkin. Tarkibning QLabel vidjet maydonidagi joylashishini setAlignment () va setIndent () yordamida sozlash mumkin . Matn tarkibi setWordWrap () bilan so'z chegaralari bo'ylab satrlarni ham o'rashi mumkin . Masalan, ushbu kod quyi o'ng burchakda ikki satrli matn bilan botgan panelni o'rnatadi (ikkala satr ham yorliqning o'ng tomoniga to'g'ri keladi):
QLabel * yorlig'i = yangi QLabel ( bu ); label - > setFrameStyle( QFrame :: Panel | QFrame :: Sunken); label - > setText( "birinchi satr \ n ikkinchi qator" ); label - > setAlignment( Qt :: AlignBottom | Qt :: AlignRight);
Xususiyatlari va funktsiyalarini QLabel ınherits QFrame ham, har qanday kirish uchun foydalanish uchun vidjet Kvadrat uchun foydalanish mumkin. QLabel ko'pincha interaktiv vidjet uchun yorliq sifatida ishlatiladi. Buning uchun QLabel klaviatura markazini boshqa vidjetga o'rnatadigan (QLabelning "do'sti" deb nomlangan) mnemonic qo'shish uchun foydali mexanizmni taqdim etadi . Masalan:
QLineEdit * phoneEdit = yangi QLineEdit ( bu ); QLabel * phoneLabel = yangi QLabel ( "& Telefon:" , bu ); phoneLabel - > setBuddy(phoneEdit);
Ushbu misolda foydalanuvchi Alt + P tugmalarini bosganda klaviatura fokusi yorliqning do'stiga ( QLineEdit ) o'tkaziladi. Agar do'st tugma bo'lsa ( QAbstractButton- dan meros ), mnemonikani ishga tushirish tugmachani bosishni taqlid qiladi.
.IV. Amaliy qism
Do'stlaringiz bilan baham: |