Ma’vzu: Vizual dasturlashda ma’lumotlar buferi bilan ishlash. Reja


Oynali loyiha yaratish va ular bilan ishlash


Download 1.9 Mb.
Pdf ko'rish
bet3/7
Sana20.12.2022
Hajmi1.9 Mb.
#1039613
1   2   3   4   5   6   7
Bog'liq
24-Mavzu

Oynali loyiha yaratish va ular bilan ishlash. 
Qt Creator muhitida Qt freimvorkidan foydalanib oddiy oynali dasturini yaratish uchun shunchaki Файл - 
Новый файл или Проект - приложение Qt Widjetsni tanlash va keyin loyiha fayllari joylashadigan joyni, asosiy 
oynaning klass nomini, uning asosiy sinfi va yaratilgan fayllarning nomlari; shuningdek, shakl(forma)ni yaratish 
so'raladi(30-rasm). 
2. 
Xabar oynalari. 
QMessageBox xabar oynalari 
Ekranda xabarlarni aks ettirish uchun alohida dialog oynalarini yaratish shart emas, chunki buning uchun 
QMessageBox klassi tomonidan taqdim etilgan tayyor oynalardan foydalanish mumkin. Xabarlar oynasi matnli 
xabarni ko'rsatadigan va foydalanuvchidan javob kutadigan eng oddiy interfeys elementidir. Uning asosiy 
maqsadi ma'lum bir voqea haqida ma'lumot berishdir. QMessageBox klassi tomonidan ta'minlangan barcha 
oynalar modaldir. Ularda tugmalar, sarlavha va xabar matni bo'lishi mumkin.QMessageBox klassi xabarlar 


oynalarini yaratishda ishlatishin mumkin bo'lgan bir qator statik usullarni o'z ichiga oladi. Ushbu usullar uchta 
guruhga bo’lingan: 
• axborot, 
• ogohlantirish, 
• xavfdan ogohlantirish. 
Oynaning turi vaziyatga qarab tanlanadi. Oynalar uchta tugmani o'z ichiga olishi mumkin, bu juda 
qulaydir, chunki xabarni namoyish qilish uchun qo'shimcha kod yozishin shart bo’lmaydi. Bunday oynalarni 
nosozliklarni ko’rsatish uchun, kerakli ma'lumotlarni namoyish qilish va dasturni to'xtatib turish uchun ishlatish 
mumkin. 
Xabarlar oynasini quyidagicha amalga yaratish mumkin: 
QMessageBox* pmbx = 
new QMessageBox("MessageBox", 
"A Simple Message", 
QMessageBox::Information, 
QMessageBox::Yes, 
QMessageBox::No, 
QMessageBox::Cancel | QMessageBox::Escape); 
int n = pmbx->exec();
delete pmbx;
if (n == QMessageBox::Yes) 

// Yes tugmasi bosilganda bajariladigan amal;

Ushbu oyna dinamik ravishda yaratiladi. Konstruktorning birinchi parametri oynaning sarlavhasidagi 
matnni, ikkinchi parametr esa HTML teglaridan foydalanishingiz mumkin bo'lgan xabar matnini o'z ichiga oladi. 
Uchinchi parametr chap tomonda ko'rsatilishi kerak bo'lgan oldindan belgilangan rasm(ikonka)ni belgilaydi. 
So'nggi uchta parametr dialog oynasida joylashtiriladigan tugmachalarni belgilaydi. So'nggi tugmachaga 
e'tibor bering: har doim Bekor qilish- Cancel tugmachasini < Escape > tugmasi sifatida belgilang, chunki 
foydalanuvchilar harakatni bekor qilish uchun buni tez-tez bosadilar. QMessageBox sinf ob'ektining exec() 
usuliga murojaat qilish asosiy dastur uchun xodisalarni qabul qilishni to'xtatadi va xabar oynasi tugmalaridan 
birini bosilishini kutadi. Tugmalardan biri bosilganda exec() usuli n o'zgaruvchisiga saqlanadigan tugma 
identifikatorini qaytaradi. delete operatori xabarlar oynasi vidjetini xotiradan o'chiradi. Dasturning If blokida 
bosilgan tugmachaning qiymatini Yes tugmachasining qiymatiga tengligi tekshiradi.Faylning boshiga #include 
 qatorini qo'shilganiga ishonch hosil qilinishi kerak. 
Quyidagi #include  satrni sarlavha fayliga(*.h) qo’shamiz.
Sinfning static funksiyalarining qo’llanilishi: 
QMessageBox::warning(this, "Внимание","Это очень важный текст\n www.itmathrepetitor.ru"); 
Natija: 
Warning o’rniga information, critical, question (va about, aboutQt)larni ishlatish mumkin.
Misol: 
QMessageBox msgBox; 
msgBox.setWindowTitle("Пример"); 
msgBox.setText("Тестовое сообщение"); 
msgBox.exec(); 


Natija: 
Tanlov oynasi: 
QMessageBox msgBox; //www.itmathrepetitor.ru 
msgBox.setText("Внимательно прочтите!"); 
msgBox.setInformativeText("Ок – процесс пошел Cancel- замести следы"); 
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); 
msgBox.setIcon(QMessageBox::Information); 
msgBox.setDefaultButton(QMessageBox::Ok); 
int res = msgBox.exec(); 
if (res == QMessageBox::Ok) // Ok tugmasi bosilganda 
doSomething(); 
else //отмена 
stopSomething(); // отмена bosilganda 
Natija: 
QMessageBox::Information ga misol ko’ramiz. Bundan tashqari QMessageBox::Question, 
QMessageBox::Warning, QMessageBox::Critical va QMessageBox::NoIcon kabi variantlar bo’lishi mumkin. 
Bunda ularni xabar oynasidagi rasm(ikonkalari) o’zgaradi. 
Ogohlantirish xabar oynasi 
Ogohlantirish xabar oynasini ekranga chiqarish uchun QMessageBox sinfining warning() metodidan 
foydalaniladi. 
Bunga misol sifatida quyidagi kodni ko’rsatish mumkin: 
int n = QMessageBox::warning(0, 
"Warning",
"The text in the file has changed,"
"\n Do you want to save the changes?",
"Yes",
"No",
QString(),
0,
1
);
if(!n) {
// Saving the changes!

Faylning boshiga #include  satrini qo’shish kerak. 
Kritik xabar oynasi 


Kritik xabarlar oynasini faqat jiddiy bir vaziyat yuz berganda ko'rsatilishi kerak. Uni namoyish qilish uchun 
critical() statik usulni ishlatish kerak, bunda uning birinchi parametrda voris vidjetiga ko'rsatgichni, ikkinchisida 
– sarlavha satrini va uchinchisida - xabarning o'zi kiritiladi. To'rtinchi, beshinchi va oltinchi parametrlarda butun 
sondagi tugma identifikatorlari kiritiladi: 
int n =QMessageBox::critical(0,"Attention", "This operation will make your "
"computer unusable, continue?", QMessageBox::Yes | QMessageBox::Default,
QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape ); 
if (n == QMessageBox::Yes) {
// Do it!

 
Faylning boshiga #include  satrini qo’shish kerak. 
About xabar oynasi 
About xabar oynasini ekranga dastur haqida umumiy ma’lumot:versiya,kontakt ma’lumotlari,avtorlik 
xuqulari to’g’risida va x.zlarni ko’rsatish uchun QMessageBox sinfining about() metodidan foydalaniladi. 
Birinchi parametr voris vidjetiga ko'rsatgich, ikkinchisi - oyna sarlavhasi, uchinchisi - xabarning o'zi. 
QMessageBox::about(0, "About", "My Program Version"); 
Faylning boshiga #include  satrini qo’shish kerak. 
QErrorMessage xato xabar oynasi 
Xatolar xabari oynasi, boshqa barcha xabarlar oynalari singari QMessageBox sinfi tomonidan emas balki 
QErrorMessage sinfi yordamida amalga oshiriladi. Bu modal bo'lmagan dialog oynasidir. Xatolar xabari oynasini 
ko'rsatish uchun ushbu sinf ob'ekti yaratiladi va message() usuli chaqiriladi, unda xabar matni yuboriladi. Misol 
uchun: 
Oynada ushbu xato takrorlanganda ushbu xabarni qayta ko'rsatmaslik uchun foydalanuvchi tomonidan 
faollashtirilishi mumkin bo'lgan bayroq mavjud. Xato xabari oynasini suviste'mol qilish kerak emas va uni faqat 
foydalanuvchiga zarar etkazmagan hollarda qo'llash kerak. Bundan tashqari, ushbu Oynani kritik xatolar uchun 
qo'llash maqsadga muvofiqdir, chunki dasturni qayta ishga tushirgandan so'ng bayroq holati dastlabki holatga 
tiklanadi. 

Download 1.9 Mb.

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




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