Respublikasi oliy va o’rta-maxsus ta’lim vazirligi samarqand davlat universiteti raqamli texnologiyalar


Qt dasturlash muhitida Teatr loyihasini yaratish



Yüklə 1,98 Mb.
səhifə4/12
tarix17.02.2022
ölçüsü1,98 Mb.
#52733
1   2   3   4   5   6   7   8   9   ...   12
MuhriddinTohirov Dasturiy injinering

1.1.Qt dasturlash muhitida Teatr loyihasini yaratish
Stillar jadvallari-barcha ilovalar uchun QApplication::setStyleSheet() yoki QWidget::setStyleSheet() orqali ma'lum bir vidjet (va uning avlodlari) uchun o'rnatilishi mumkin bo'lgan matnli xususiyatlardir. Agar turli darajalarda bir nechta uslublar jadvallari o'rnatilgan bo'lsa, Qt barcha o'rnatilgan uslublar jadvallaridan samarali uslublar jadvalini yaratadi. Bunga kaskadlash deyiladi.

Misol uchun, quyidagi uslublar jadvali barcha QLineEdit maydonlarini fon sifatida sariq rang sifatida ishlatishi kerakligini ta’minlaydi va barcha QCheckbox obyektlari matn rangi sifatida qizildan foydalanishi kerakligini o’rnatadi:

QLineEdit { background: yellow }

QCheckBox { color: red }

Stillar jadvallari faqat QPalette yordamida amalga oshirish qiyin yoki mumkin bo'lmagan barcha turdagi sozlamalarni amalga oshirish imkonini beradi. Agar siz majburiy joylar uchun sariq fonni olishni istasangiz, potentsial xavfli tugmalar yoki odatiy tugma uchun qizil matnni o’rnatmoqchi bo’lsangiz stillar jadvallari bunga yordam beradi.

Stillar jadvallari joriy vidjetlarning yuqori qismida qo'llaniladi, ya'ni ilovalaringiz iloji boricha tabiiy ko'rinadi, ammo uslublar jadvalining har qanday cheklovlari hisobga olinadi. Yaroqsiz palitradan farqli o'laroq, stillar jadvallari quyidagilarni ta'minlaydi: Agar siz QPushButton uchun qizil fon rangini o'rnatgan bo'lsangiz, tugma fonining barcha uslubda, barcha platformalarda qizil bo'lishiga ishonch hosil qilishingiz mumkin. Bundan tashqari, Qt Designer uslublar jadvallarini integratsiyalashni ta'minlaydi, bu esa turli xil vidjet uslublarida ulardan foydalanish samarasini ko'rishni osonlashtiradi.

Bunga qo'shimcha ravishda, stillar jadvallari QStyle kichik sinflarini ishlatmasdan sizning ilovangizga o'ziga xos ko'rinish berish uchun ishlatilishi mumkin. Masalan, siz radio tugmachalari uchun maxsus rasmlarni o’rnatishingiz va ularni belgilangan holati uchun boshqa tasvirlarni joylashtirishigiz mumkin. Ushbu texnikadan foydalangan holda, siz odatda stillar ko'rsatmalari kabi bir nechta uslublar sinflarida meros olishni talab qiladigan kichik o'zgarishlarni amalga oshirishingiz mumkin.

Stillar to'plami har qanday faol uslublar jadvali hisobga olinishini ta'minlaydi va boshqa tasvirchizish operatsiyalari platformalarga qaram bo'lgan uslubni aniqlaydi.Ro’yxatli vidjetlarTanlov elementlari ma'lumotlarni ko'rsatish, o'zgartirish va tanlash uchun standart grafik elementlar hisoblanadi.Oddiy ro'yxatQListwidget klassi foydalanuvchini bitta yoki bir nechta elementni tanlash imkoniyatini beruvchi ro'yxat vidjetidir. Ro'yxat elementlari matn va rastr tasvirlarni o'z ichiga olishi mumkin. Ro'yxatga elementni qo'shish uchun additem() usulini ishlatish kerak.Ushbu usulning ikkita variantini bor: QListWidgetItem matn va sinf ob'ekti uchun. Agar ro'yxatdagi barcha elementlarni olib tashlash kerak bo'lsa, clear() metodidan foydalanish kerak.QListWidgetItem- sinfi ro'yxat elementlari uchun sinf hisoblanadi. Ushbu sinflarning ob'ektlari, masalan, matnni QListWidget::addItem(). usuliga uzatishda bevosita yaratilishi mumkin.Shuni ta'kidlash kerakki, QListWidgetItem klassi nusxa ko'chirish konstruktorini taqdim etadi, bu esa elementlarning nusxalarini yaratishga imkon beradi. Bundan tashqari, bu maqsadda clone() usulidan foydalanishingiz mumkin.

Ro’yxat Elementlarini kiritish

Bir vaqtning o'zida bir nechta matn elementlarini ro'yxatga bir qatorga qo'shib qo'yish mumkin, bunda satrlarning ro'yxatini o'z ichiga olgan QStringList-ni InsertItems() usulidan foydalaniladi. Matn elementini yaratish uchun siz InsertItem() usulidan foydalanish mumkin, faqat parameter sifatida satr berilishi kerak. QListWidgetItem ob'yekti, shuningdek, insertItem() usuli yordamida ro'yxatga kiritilishi mumkin. U addItem() usulidan qo'shiladigan elementning aniq o'rnini ko’rsatish mumkinligi bilan farq qiladi.Yaratilgan elementga ro'yxat ob'ekti QListWidgetItem::setIcon() usuli yordamida qo’shiladigan elementga rasm o’rnatiliishi mumkin.

Shunisi e'tiborga loyiqki, ro'yxat elementlarida nafaqat rasmlar va matnlar, balki vidjetlar ham o'rnatilishi mumkin. Buning uchun QListWidget klassining setItemWidget() va itemWidget() usullaridan foydalansa bo’ladi. SetItemWidget() usulining birinchi parametri ro'yxat ob'ekti ob'ektiga ko'rsatgichni, ikkinchisi - vidjetga ko'rsatgichni o'tkazish kerak. Ro'yxat elementida joylashgan vidjetga ko'rsatgichni olish uchun, elementni listWidget() usuliga ro'yxat elementi ob'ektiga o'tkazish kerak.

Operatsion tizimlarning ro'yxatini ko'rsatadigan oddiy ro'yxatni ishlatishga misol quyida keltirilgan(45-rasm).

# include

int main(int argc, char** argv)

{ QApplication app(argc, argv);

QStringList lst;

QListWidget lwg;

QListWidgetItem* pitem = 0;

lwg.setIconSize(QSize(48, 48));

lst << "Linux" << "Windows" << "MacOS" << "OS2";

foreach(QString str, lst) {

pitem = new QListWidgetItem(str, &lwg);

pitem->setIcon(QPixmap(str + ".jpg")); }

lwg.resize(125, 175); lwg.show(); return app.exec(); }

Oddiy ro'yxat vwget lwg yaratildi.Ro'yxat vidjetining setIconSize() usuli elementlarning rasmlari uchun hajmni belgilaydi. Keyin lst satrlari ro'yxati elementlar uchun matnlar bilan to'ldiriladi. Ushbu ro'yxatga foreach operatori yordamida elementlar yaratamiz va qo'shamiz. SetIcon() usuli bilan har bir element uchun tasvir o'rnatiladi.

Ro’yxat elementlarini tanlash

QListWidget :: currentItem() usuli yordamida foydalanuvchi qaysi elementni tanlaganligini bilib olish mumkin, u tanlangan elementga ko'rsatgichni qaytaradi. Agar bir nechta element tanlangan bo'lsa, u holda tanlangan elementlar ro'yxatini qaytarib beradigan selectedItems() usulidan foydalanish kerak. Ko'p tanlov rejimini yoqish uchun QAbstractItemView bazasida amalga oshiriladigan setSelectionMode() usuliga QAbstractItemView::MultiSelection qiymatini o'rnatish kerak. Boshqa qiymatlarni berib, masalan, tanlovni butunlay o'chirib qo'yish uchun QAbstractItemView::NoSelection-ni qiymatni va faqat bitta elementni belgilaydigan qilish uchun - QAbstractItem::SingleSelection-ni parameter sifatida ishlatish kerak.

Ro'yxat elementi ustida sichqoncha bosilganda itemClicked() signali yuboriladi. Ikki marta bosilganda, itemDoubleClicked() signali QListWidgetItem* parametri bilan yuboriladi. Har safar tanlov o'zgarganda, itemSelectionChanged() signali yuboriladi.



Yüklə 1,98 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   12




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin