O’zbekiston respublikasi oliy va o’rta-maxsus ta’lim vazirligi samarqand davlat universiteti raqamli texnologiyalar fakulteti axborot tizimlarini matematik va



Download 3,65 Mb.
bet7/9
Sana23.01.2022
Hajmi3,65 Mb.
#402534
1   2   3   4   5   6   7   8   9
Bog'liq
Dasturlash asoslari kurs ishi Abduvihid Ne\'matov

Ro’yxatli vidjetlar.

Tanlov elementlari ma'lumotlarni ko'rsatish, o'zgartirish va tanlash uchun standart grafik elementlar hisoblanadi.

Oddiy ro'yxat

QListwidget 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.



Foydalanuvchi tomonidan elementlarni o'zgartirish

Foydalanuvchiga elementning matnini o'zgartirishga imkon berish uchun QListWidgetItem::setFlags() usuliga kerakli ob'ektidan murojaat qiling va unga Qt::ItemIsEditable qiymatini va boshqa kerakli qiymatlarni bering. Misol uchun:



pitem->setFlags(Qt::ItemIsEditable|Qt::ItemIsEnabled);

Qayta nomlash ro'yxat elementini ikki marta bosish yoki tugmachasini bosish orqali amalga oshiriladi. Qayta nomlash tugagach, QListWidget elementni o'zgartirilgan (QListWidgetItem*) va itemRenamed (QListWidgetItem *) signallarini yuboradi.




Download 3,65 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish