Shartli va tanlash jarayonlarni dasturlash.
Mavzu : -Mavzu: Shartli va tanlash jarayonlarni dasturlash. Reja: 1. Shartli jarayonlarni Qt muhitida dasturlash. 2. Qt dasturlash muhitida tanlash(RadioButton,CheckBox) va elementlari tanlanadigan ro’yxatlar(Combobox) haqida ma’lumotlar,ularning xossa va hodisalari.
1. Shartli jarayonlarni Qt muhitida dasturlash. Tanlash selektorlari ma'lumotlarni namoyish qilish, o'zgartirish va tanlash uchun standart grafik interfeysli elementlaridir. Ushbu mavzudagi bir qator sinflar - QListwidget, QTreeWidget va QTableWidget - model ko'rinishi arxitekturasiga asoslangan. Ushbu arxitektura sinflaridan to'g'ridan-to'g'ri foydalanish bu erda tasvirlangan sinflar bilan taqqoslaganda ba'zi afzalliklarni beradi va shuning uchun ko'p hollarda afzalroqdir. 2. Qt dasturlash muhitida tanlash(RadioButton,CheckBox) va elementlari tanlanadigan ro’yxatlar(Combobox) haqida ma’lumotlar ,ularning xossa va hodisalari . QCheckBox bayroqchalari Aksariyat dasturlar dasturning xatti-harakatlarini o'zgartirish uchun turli xil sozlamalarni taqdim etadi. QCheckBox vidjeti bu maqsadda foydali bo'lishi mumkin, bu foydalanuvchiga bir vaqtning o'zida bir nechta parametrlarni tanlash imkonini beradi. Belgilash qutisi vidjetining QCheckBox sinfi QCheckBox sarlavha faylida aniqlangan. Agar beshdan ko'p variant mavjud bo'lsa, unda QListWidget ro'yxati vidjetidan foydalanish yaxshiroqdir. Belgilash katakchasi kichkina to'rtburchakdan iborat bo'lib, uning yonida izohli matn yoki rasmdan bo'lishi mumkin. Vidjetni bosganingizda to'rtburchakda tasdiq belgisi paydo bo'ladi. Vidjet faol bo'lganda <bo'sh joy>(probel) tugmasini bosish orqali uni belgilash mumkin. Ushbu vidjet dastur mantig'iga ko'ra "yoqish" yoki "o'chirish" holatiga o'rnatiladi va bu holatlarni o’rnatish va o’chirish tugmasi hisoblanadi(51-rasm). Ammo, bu ikki holatdan farqli o'laroq, QCheckBox uchinchi - aniqlanmagan holatga ham ega bo'lishi mumkin. Ushbu holat qanday ishlatilishini misol sifatida Windows-da Explorer xususiyatlari oynasida turli xil xususiyatlarga ega bir nechta fayllarni tanlaganda ko'rish mumkin.
51-rasm.QCheckBox holatlari #include <QtGui> int main(int argc, char** argv) { QApplication app(argc, argv); QWidget wgt; QCheckBox* pchkNormal = new QCheckBox("&Normal Check Box"); pchkNormal->setChecked(true); QCheckBox* pchkTristate = new QCheckBox("&Tristate Check Box"); pchkTristate->setTristate(true); pchkTristate->setCheckState(Qt::PartiallyChecked); //Layout setup QVBoxLayout* pvbxLayout = new QVBoxLayout; pvbxLayout->addWidget(pchkNormal); pvbxLayout->addWidget(pchkTristate); wgt.setLayout(pvbxLayout); wgt.show(); return app.exec(); } Yuqoridagi dasturda ikkita bayroq ko'rsatkichlari - pchkNormal va pchkTristate yaratildi. Normal QCheckBox vidjeti setChecked() metodiga true parameter berilib vidjet belgilangan holatga o’tkazilgan. Tristate QCheckBox setTristate() metodiga true parameter berilib vidjet uchinchi, aniqlanmagan holatga o’tkazilgan. Keyin setCheckState() usulini Qt:: PartiallyChecked chaqirish orqali uchinchi holat o'rnatiladi. QRadioButton radiotugmalar sinfi
Uzining inglizcha - RadioButton nomini - panelida faqat bitta tugmachani bosish mumkin bo'lgan radio qabul qilgich tugmachalariga o'xshashligi tufayli paydo bo'ldi. Bu tugmalar odatda guruh bo’lib keladi va guruhdagi biror RadioButton tugmani belgilash, guruhdagi avval bosilgan tugmani avtomatik ravishda o'chiradi. RadioButton vidjeti, ikki holatda bo'lishi mumkin: belgilangan yoki belgilanmagan(o'chirilgan). Foydalanuvchi ushbu holatlarni vidjey faol bo'lganda sichqonchani chap tugmasini bir marta bosish yoki <bo'sh joy> tugmasi yordamida o'rnatishi mumkin. RadioButton vidjetining QRadioButton sinfi QRadioButton sarlavha faylida aniqlangan.Ushbu vidjet foydalanuvchiga kamida ikkita taklifdan birini tanlashni ta'minlashi kerak. RadioButton vidjetlarini alohida holatda ishlatish mumkin emas va ularni birgalikda guruhlash kerak. Ularni, masalan, QGroupBox sinfidan foydalanib xam guruhlashingiz mumkin. Guruhda ishlatiladigan har bir Radiotugma uchun tushuntirish yozuvlari aniqlanishi kerak, shuningdek, har bir tugmani tezroq faollashtirish uchun klaviatura tugmalarini o'rnatish maqsadga muvofiqdir. Bu tugma yozuvida kerakli harfning oldiga & belgisini qo'shish orqali amalga oshiriladi. RadioButtonlarning afzalligi shundaki, barcha variantlar birdaniga ko'rinadi, ammo ular juda ko'p joy egallaydi. Shuning uchun, agar radio tugmachalari soni beshtadan ko'p bo'lsa, unda QComboBox ochiladigan ro’yxat vidjetidan foydalanish yaxshiroqdir. QRadioButon vidjeti
#include <QtGui> int main(int argc, char** argv) { QApplication app(argc, argv); QGroupBox gbx("&Colors"); QRadioButton* pradRed = new QRadioButton("&Red"); QRadioButton* pradGreen = new QRadioButton("&Green"); QRadioButton* pradBlue = new QRadioButton("&Blue"); pradGreen->setChecked(true); //Layout setup QVBoxLayout* pvbxLayout = new QVBoxLayout; pvbxLayout->addWidget(pradRed); pvbxLayout->addWidget(pradGreen); pvbxLayout->addWidget(pradBlue); gbx.setLayout(pvbxLayout); gbx.show(); return app.exec(); } Bu dasturda gbx radio tugmachalari guruhi uchun vidjetlar yaratiladi. PradRed, pradGreen va pradBlue Radiotugmalarini yaratgandan so'ng, ulardan biri (pradGreen) setChecked() usulini true parametr bilan chaqirib yoqilgan holatga o’tkaziladi. Tugmalar gbx guruh vidjetiga joylashtirilgan va QVBoxLayout sinf ob'ekti ularni avtomatik ravishda vertikal ravishda joylashtiradi. Elementlari tanlanadigan ochiladigan ro'yxat QComboBox klassi foydalanuvchiga bir nechta elementlardan birini tanlash imkoniyatini beradi. Uning ishi QListWidget oddiy ro'yxat vidjeti bilan bir xil. Ochiladigan ro'yxatning asosiy afzalligi shundaki, u faqat bitta (tanlangan) elementni namoyish etadi, shuning uchun uni joylashtirish uchun ko'p joy egallanmaydi. Foydalanuvchiga mavjud variantlardan tanlovni amalga oshirishi