logo

Muloqot oynalarini dasturlash.

Yuklangan vaqt:

08.08.2023

Ko'chirishlar soni:

0

Hajmi:

181.0498046875 KB
Mavzu   : Muloqot oynalarini	 dasturlash.
Reja:
1. Muloqot oynalarini boshqarish jarayonlarini dasturlash.
2. Qt muhiti Dialog oynalari haqida ma’lumot,ularning xossa va hodisalari.
  1. Muloqot oynalarini	 boshqarish	 jarayonlarini	 dasturlash.
Jarayon elementi
                    Jarayon   elementi   bu   operatsiyaning   borishini   ko'rsatadigan   va   chapdan
o'ngga   to'ldiradigan   vidjet.   Ko'rsatkichning   to'liq   to'lishi   operatsiya   tugaganligi
haqida   xabar   beradi.   Ushbu   vidjet   dasturda   uzoq   muddatli   harakatlarni
bajarayotganda   talab   qilinadi.   Bu   foydalanuvchiga   dastur   qotmaganligini,   va
ishlayotganligini bildiradi. Bundan tashqari, u amallarning qanchasi qilinganligi va
bajarilishi   kerak   bo'lgan   narsalarni   ko'rsatadi.   Jarayon   elementi   vidjeti
QProgessBar  sinfida QProgressBar  sarlavha faylida aniqlangan. Odatda jarayonni
elementi     gorizontaldir,   lekin   buni     SetOrientation(Qt   ::   vertikal)   qiymati   bilan
vertical   ko’rinishga   o'zgartirish   mumkin   -   shundan   so'ng   u   vertikal   holatda
joylashadi.
                      Rasmda   keltirilgan   quyidagi   misol,   siljish   jarayon   elementidan
foydalanishni   namoyish   etadi.   Step   tugmasini   bosish   indikator   qiymatini   bir
qadamga oshiradi. Reset tugmasini bosish indikator qiymatini yangilaydi.
Jarayon elementining ishlashi
#include <QApplication>
#include "Progress.h"
int main (int argc, char** argv)
{
  QApplication app(argc, argv);
  Progress progress;
  progress.show();
  return app.exec();
}
                  Quyidagi   dasturda   QWidget-dan   meros   bo'lib   o'tgan   Progress.h   fayli
ko'rsatilgan.   Sinf   ikkita   atributni   o'z   ichiga   oladi:   jarayon   progressi   vidjetiga ko'rsatkich   va   qadam   raqamini   aks   ettiruvchi   butun   son.   Sinfda   ikkita   slot
aniqlangan:
slotStep()   va   slotReset() .   Birinchisi,   qadamni   birga   oshirish,   ikkinchisi   -   jarayon
ko'rsatkichini nolga o'rnatish.
#ifndef _Progress_h_
#define _Progress_h_
#include <QWidget>
class QProgressBar;
class Progress : public QWidget {
Q_OBJECT
private:
QProgressBar* m_pprb;
int m_nStep;
public:
Progress(QWidget* pobj = 0);
public slots:
void slotStep ();
void slotReset();
};
#endif //_Progress_h_
2. Qt muhiti	 Dialog	 oynalari	 haqida	 ma’lumot ,ularning	 xossa	 va	 hodisalari .
Dialog   oynasi   foydalanuvchi   va   dastur   o'rtasidagi   o'zaro   aloqani   ta'minlovchi
markaziy element hisoblanadi. Ushbu vidjet bir qator sozlamalarni o'z ichiga olib,
ularning o'zgarishi dastur bajarilishini o’zgarishiga olib keladi. Dialog oynalari har
doim   yuqori  darajali   vidjetlar   va  ular  alohida   sarlavhasiga   ega.  Ular   uchta  asosiy
toifaga bo'linishi mumkin:
 Shaxsiy oynalar;
 Standart oynalar;
 xabarlar oynasi. Dialog oynalarini yaratish qoidalari
Dialogli oynalar har qanday dastur uchun zarurdir va ularni yaratish odatda
dasturchi   bajarishi   kerak   bo'lgan   odatiy   ishdir.   Dialog   oynasini   yaratish   aslida
kerakli elementlarni joylashtirishdan ko'proq narsani o'z ichiga oladi. O'qishga vaqt
sarflamasligi,   balki   darhol   ishlashni   boshlashi   uchun   foydalanuvchiga   dialog
oynasi   bilan  ishlashning   intuitiv   usulini   taqdim   etish   muhimdir.   Intuitiv   ishlashni
ta'minlash uchun quyidagi qoidalarga rioya qilish kerak: 
 dialog oynasini erkin va sodda saqlashga harakat qiling. Dastur sozlamalari dialog
oynasida   faqat   asosiy   tugmachalar   kerak   bo'ladi,   masalan:   Ok,   Cancel(Bekor
qilish) va Apply(Qo'llash);
  vidjetlarni   mantiqiy   guruhlarga   ajratib,   ramkalar   va   chiziqlar   bilan   ajratish.
Ajratish uchun gorizontal va vertikal chiziqlardan foydalaning;
  Hech qachon dialog oyna tarkibini siljitib ko’rsatiladigan soha sifatida tayyorlab
bo'lmaydi.   Agar   oynada   ko'plab   elementlar   bo'lsa,   ularni   guruhlarga   bo'lishga
harakat qiling va ularni yorliqlar yordamida joylashtiring;
  dialog   oynasidagi   yorliqlardagi   yozuvlar   bir   nechta   satrdan   joy   olishi   tavsiya
etilmaydi, bu qidiruvni murakkablashtiradi;
  o’lchami o’zgarmaydigan dialog oynalarini yaratishdan saqlaning. Foydalanuvchi
har doim o'z xohishiga ko'ra oyna hajmini oshirishi yoki kamaytirishi kerak;
  murakkab   oynalarni   qo'shimcha   Help   yordam   tugmachasi   bilan   tayyorlash
yaxshiroq, u bilan kontekstli yordam oynasi ochilishi kerak;
  dialog   oynalarini   ochadigan   menyu   bo’limlari   (…)   bilan   tugashi   kerak,   masalan
Open   ...   .   Foydalanuvchi   menyu   bo’limiga   qarab   dialog   oynasini   ochishini
oldindan bilishi uchun shunday qilish tavsiya etiladi;
  dialog   oynalariga   menyu   qo'shmaslikka   harakat   qiling.   Menyu   asosiy   dastur
oynasida ishlatilishi kerak;
  Imkoniyat   bo'lsa,   foydalanuvchilarga   tanish   bo'lgan   standart   vidjetlardan
foydalaning.
Esda tutingki, yangi boshqarish vositalarini o'rganish qo'shimcha vaqt talab
qilishi mumkin;   Sozlamalarni   ko'rsatish   uchun   turli   rangni   ishlatishdan   saqlaning.   Aksariyat
hollarda matn eng yaxshi alternativadir. Axir, bir xil rang turli mamlakatlarda har
xil   semantik   ma'noga   ega   bo'lishi   mumkin.   Bundan   tashqari,   rang   ajrata
olmaydigan foydalanuvchilar uchun bu noqulay bo'lmasligi kerak;
  foydalanuvchi nafaqat sichqoncha bilan, balki klaviatura bilan ham dialog oynasi
bilan   ishlashi   kerakligini   unutmang.   Buning   uchun   barcha   oynali   elementlarni
tezkor   tugmachalar   bilan   ta'minlash   kerak,   ya’ni   biror   harfni   <Alt>   tugmasibilan
birga bosib kerakli elementga yo'naltirish imkoniyati bo’lishi kerak.
QDialog sinfi
QDialog sinfi Qt sinf ierarxiyasidagi barcha dialog oynalari uchun asosiy sinfdir. 
Har qanday vidjetni yuqori darajadagi vidjetga aylantirish  bilan dialog oynasiga 
aylantirish mumkin, lekin, barcha dialog oynalariga kerak bo'ladigan bir qator 
xususiyatlarni taqdim etadigan QDialog sinfidan foydalanish yanada qulayroq. 
Dialogli oynalar ikki guruhga bo'lingan:
 modal;
 modallmas.
Modallik va modallmaslik rejimi mos ravishda QDialog ::setModal () va 
QDialog:: isModal () usullari yordamida o'rnatilishi mumkin. True qiymat - modal 
va False - modallmaslikni anglatadi. 
Modal dialog oynalari
Ushbu   oynalar   odatda   muhim   xabarlarni   namoyish   qilish   uchun   ishlatiladi.
Masalan, ba'zida ayrim xato xabarlarga, foydalanuvchi dasturni ishlatishni davom
ettirishdan   oldin   javob   berishi   kerak.   Modal   oynalar   dasturni   to'xtatadi   va   u
ishlashni   davom   ettirish   uchun   bunday   oynani   yopish   kerak.   Bunday   hollarda
modal   dialog   oynasi   foydalanuvchining   e'tiborini   jalb   qilish   uchun   juda   mos
keladi.
Ilovani blokirovka qilish uchun faqat dialog oynasi uchun hodisalar qatori ishga
tushiriladi   va   boshqa   klaviatura,   sichqoncha   va   dasturdagi   boshqa   hodisalar
e'tiborga   olinmaydi.   Ushbu   hodisa   exec()   slotini   chaqirish   bilan   boshlanadi,   u
dialog   oynasi   yopilgandan   keyin   butun   sonni   qaytaradi.   Ushbu   qiymat   bosilgan tugma   haqida   xabar   beradi   va   QDialog::Accepted   yoki   QDialog::Rejected
qiymatlariga   ega   bo’lishi   va,   bu   Ok   va   Cancel(Bekor   qilish)   tugmalariga   mos
keladi.Modal   oynaning   odatiy   misoli   bu   dasturdan   chiqishdan   oldin
foydalanuvchiga   hujjatni   saqlashni   eslatishdir.   Ushbu   oyna   paydo   bo'lganda,
dasturning  o'zi   bilan   ishlash   imkoniyati   bloklanishi   kerak.   Modal   dialog  oynasini
ochish printsipi quyidagicha:
MyDialog* pdlg = new MyDialog(&data);
if (pdlg->exec() == QDialog::Accepted) {
// Foydalanuvchi Acceptedni tanladi
// Ma’lumotlarni qayta ishlash yoki boshqa amallar uchun qabul qilish
Data data = pdlg->getData();
...
}
delete pdlg;
Modal bo’lmagan dialog oynalari
     Modal bo’lmagan dialog oynalari odatdagi vidjetlar kabi ishlaydi, ular paydo
bo'lganda   dasturni   to'xtatmay   ishlay   oladi.   Bir   qarashda,   oddiy   bo'lmagan   dialog
oynalaridan foydalanish yanada mantiqiy bo'lib tuyulishi mumkin, chunki bu holda
foydalanuvchi   o'z   harakatlarida   ko'proq   erkinlikka   ega.   Ammo,   aslida,   aksariyat
dasturlar   foydalanuvchi   qaror   qabul   qilishidan   oldin,   keyingi   harakatlarni
boshlashdan   oldin   to'xtatib   qo'yilishi   kerak.   Ammo   modal   bo'lmagan   dialog
oynalari odatdagidek ishlatiladi. 
        Modal   bo’lmagan   oyna   oddiy   vidjet   singari   show()   usuli   yordamida
ko'rsatilishi   mumkin.   Show()   usuli   hech   qanday   qiymatni   qaytarmaydi   va   butun
dasturning   bajarilishini   to'xtatmaydi. Hide()   usuli   oynani   ko'rinmas   holga
keltirishga   imkon   beradi.   Ushbu   xususiyatdan   har   safar   dialog   oynasi   ob'ekti
yaratilmasligi   va   uni   yopganda   xotiradan   olib   tashlamaslik   uchun   foydalanish
mumkin. Agar biz   show()  va   hide()  usullarini chaqirish bilan cheklanib qolsak, bu
dialog oynasini u yashirilgan joyda ko'rsatishga imkon beradi.     Modal   bo'lmagan   dialog   oynalari   foydalanuvchiga   uni   yopish   uchun   ruxsat
berish uchun "Yopish" tugmachasi bilan ta'minlanishi kerak.
Standart dialog oynalari
    Standart   oynalardan   foydalanish   fayllar,   shriftlar,   ranglar   va   boshqalarni
tanlash   uchun   dialog   oynalaridan   foydalanish   kerak   bo'lgan   dasturlarning
yaratilishini sezilarli darajada tezlashtiradi.
Loyihani   rivojlantirish   uchun   vaqt   sarflash   o'rniga,   Qt   kutubxonasida   tayyor
oynalardan   foydalanish   mumkin.Standart   dialog   oynalarining   afzalliklari
foydalanuvchi interfeysining yaxlitligini o'z ichiga oladi, chunki ularni ishlatadigan
barcha dasturlarda oynalarning ko'rinishi bir xil bo'ladi.
Fayl tanlash dialog oynasi
Fayllarni   tanlash   oynasi   bir   yoki   bir   nechta   fayllarni,   shuningdek,   masofadan
turib kompyuterda joylashgan fayllarni tanlash uchun mo'ljallangan va fayllarning
nomini   o'zgartirish   va   kataloglar   yaratish   qobiliyatini   qo'llab-quvvatlaydi.
QFileDialog   sinfi   faylni   tanlash   dialog   oynasini   amalga   oshirishni   ta'minlaydi   va
bir   vaqtning   o'zida   uchta   dialog   oynasini   yaratish   va   ishga   tushirish   uchun
javobgardir. Ulardan biri ochiladigan faylni tanlashga imkon beradi, ikkinchisi uni
saqlash   uchun yo'lni   va fayl   nomini   tanlashga,  uchinchisi  esa   katalogni  tanlashga
imkon beradi. QFileDialog sinfi QDialog sinfidan meros bo'lib o'tgan.
      Bu sinf quyidagi statik usullarni taqdim etadi:
  getOpenFileName() - bitta faylni tanlash oynasini yaratadi. Ushbu usul tanlangan
faylning nomi va yo'lini o'z ichiga olgan QStringni qaytaradi;
 getOpenFileNames() - bir nechta fayllarni tanlash uchun dialog oynasini yaratadi.
QStringList tipidagi satrlar ro'yxatini va fayl nomlarini o'z ichiga oladi;
  getSaveFileName()   -   Faylni   saqlash   oynasini   yaratadi.   QString   turidagi   satr
o'zgaruvchisida fayl nomi va yo'lini qaytaradi;
  getExistingDirectory()  -   katalog  tanlash   oynasini  yaratadi.  Ushbu   usul  tanlangan
katalog nomi va yo'lini o'z ichiga olgan QStringni qaytaradi.
Ushbu usullarning birinchi parametri - bu voris ob’yektga ko'rsatgich, ikkinchisi
-   oynaning   sarlavha   matni,   uchinchisi   -   joriy   katalogni   ifodalovchi   satr. GetOpenFileName()   usulini   chaqirib,   fayl   ochish   dialogni   ishga   tushiriladi.Bu
usulga   o'tgan   to'rtinchi   parametr   filtr   (yoki   niqob)   fayl   kengaytmasini   belgilash
imkonini beradi. Misol uchun:
QString str=QFileDialog::getOpenFileName(0, "Ochiq muloqot", "", "* .cpp 
* .h");
Fayl ochish dialoq oynasi
Quyidagi dastur getSaveFileName() statik usulini faylni saqlash dialogida qanday 
ishlatilishini ko'rsatib beradi.
QPixmap pix(320, 200);
QString strFilter;
QString str =
QFileDialog::getSaveFileName(0,
tr("Save Pixmap"),
"Pixmap",
"*.png ;; *.jpg ;; *.bmp",
&strFilter
);
if (!str.isEmpty()) {
if (strFilter.contains("jpg")) {
pix.save(str, "JPG"); }
else if (strFilter.contains("bmp")) {
pix.save(str, "BMP");
}
else {
pix.save(str, "PNG");
}}
Katalog tanlash oynasi
GetExistingDirectory() usuli foydalanuvchiga katalogni tanlash imkonini beradi. 
Misol uchun:
QString str = QFileDialog ::getExistingDirectory (0, "Katalog oynasi", "");
Kataloq tanlash dialog oynasi
Printer sozlamalari dialog oynasi
Ushbu   oyna   sizga   printerni   tanlash,   uning   parametrlarini   o'zgartirish   va   bosib
chiqarish   uchun   varaqlarning   hajmini   belgilash   imkonini   beradi.   Printer
sozlamalari   dialog   oynasi   QPrintDialog   sinfida   amalga   oshiriladi,   ammo   uni
QPrinter   sinf   printeridan   ajratib   murojaat   qilishning   ma'nosi   yo'q,   chunki   asosiy
vazifa ushbu ob'ektni bosib chiqarish uchun sozlashdir. Misol uchun:
QPrinter printer;
QPrintDialog* pPrintDialog = new QPrintDialog(&printer);
if (pPrintDialog->exec() == QDialog::Accepted) {
// Печать }delete pPrintDialog;
Printer sozlamalari dialog oynasi
Rang tanlash oynasi
QColorDialog klassi rang tanlash uchun dialog oynasini yaratadi. Ushbu 
oynani namoyish qilish uchun  getColor()  statik usuli ishlatiladi. Usulga birinchi 
parametr, boshlash uchun rang qiymatini uzatishi mumkin. Ikkinchi parametr - 
voris vidjetiga ko'rsatgich. Muloqot oynasini yopgandan so'ng, usul QColor 
sinfining ob'ekti hisoblanadi.
Oyna OK yoki Cancel bilan yopilganligini bilish uchun  usul bilan QColor 
ob'ektini qaytaradigan isValid() usulidan foydalanish kerak. True qiymat OK 
bosilganini, aks holda Cancel(Bekor qilish) bosilganini bilish mumkin. Misol 
uchun:
QColor color = QColorDialog::getColor(blue);
if (!color.isValid()) {
// Cancel
} Rang tanlash dialog oynasi
Shrift tanlash oynasi
Shriftni tanlash oynasi tizimda ro'yxatdan o'tgan shriftlardan birini tanlash, 
shuningdek uning turi va o’lchamini belgilash uchun mo'ljallangan. Ushbu dialog 
oynasining bajarilishi QFontDialog sinfida mavjud bo'lib, u QFontDialog sarlavha 
faylida aniqlanadi.
Matn shriftini tanlash oynasi
Shrift   muloqot   oynasini   ko'rsatish   uchun   aksariyat   hollarda
QFontDialog::getFont() usuliga murojaat  qilish mumkin. Ushbu usulning birinchi
parametri   mantiqiy   tipdagi   o'zgaruvchiga   ko'rsatgichdir.   Agar   dialog   oynasi   OK
tugmachasini   bosish   bilan   yopilgan   bo'lsa,   usul   bu   o'zgaruvchiga   true   qiymatni
yozadi, aks holda false.
Ikkinchi   parametrda   QFont   sinfining   ob'ektini   uzatish   mumkin,   u   dialog
oynasini   ochishda   uchun   ishlatiladi.   Shriftni   tanlash   tugallangach   va   oyna yopilganda statik  getFont()   usuli   foydalanuvchi  tanlagan  shriftni   qaytaradi. Misol
uchun:
bool bOk;
QFont fnt = QFontDialog::getFont(&bOk);
if (!bOk) {
// Была нажата кнопка Cancel            Foydalanilgan	 ea dabiyotlar	 ro’yxati
1. Sh.A.Nazirov, R.V.Qobulov, M.R.Babajanov «C va C++ TILI»
2. Informatika fanidan o’quv qo’llanma //TATU 489 b. Toshkent, 2012.
3. C / C ++.   Программирование   на   языке   высокого   уровня   /   Т.   А.
Павловская. — СПб.:Питер, 2003. —461 с: ил.
4. Программирование на языке С++ в среде  Qt   Creator :
5. / Е. Р. Алексеев, Г. Г. Злобин, Д. А. Костюк,О. В. Чеснокова,
6. А. С. Чмыхало — М. :  ALT   Linux , 2015. — 448 с.
7. Жасмин   Бланшет,   Марк   Саммерфилд   Qt   4:Программирование   GUI   на
C ++
8. М.Шлее,  Qt  5.10. Профессиональное программирование на С++. - СПб.:
БХВ-Петербург, 2018. - 1072 с.

Mavzu   : Muloqot oynalarini  dasturlash. Reja: 1. Muloqot oynalarini boshqarish jarayonlarini dasturlash. 2. Qt muhiti Dialog oynalari haqida ma’lumot,ularning xossa va hodisalari.  

1. Muloqot oynalarini  boshqarish  jarayonlarini  dasturlash. Jarayon elementi Jarayon elementi bu operatsiyaning borishini ko'rsatadigan va chapdan o'ngga to'ldiradigan vidjet. Ko'rsatkichning to'liq to'lishi operatsiya tugaganligi haqida xabar beradi. Ushbu vidjet dasturda uzoq muddatli harakatlarni bajarayotganda talab qilinadi. Bu foydalanuvchiga dastur qotmaganligini, va ishlayotganligini bildiradi. Bundan tashqari, u amallarning qanchasi qilinganligi va bajarilishi kerak bo'lgan narsalarni ko'rsatadi. Jarayon elementi vidjeti QProgessBar sinfida QProgressBar sarlavha faylida aniqlangan. Odatda jarayonni elementi gorizontaldir, lekin buni SetOrientation(Qt :: vertikal) qiymati bilan vertical ko’rinishga o'zgartirish mumkin - shundan so'ng u vertikal holatda joylashadi. Rasmda keltirilgan quyidagi misol, siljish jarayon elementidan foydalanishni namoyish etadi. Step tugmasini bosish indikator qiymatini bir qadamga oshiradi. Reset tugmasini bosish indikator qiymatini yangilaydi. Jarayon elementining ishlashi #include <QApplication> #include "Progress.h" int main (int argc, char** argv) { QApplication app(argc, argv); Progress progress; progress.show(); return app.exec(); } Quyidagi dasturda QWidget-dan meros bo'lib o'tgan Progress.h fayli ko'rsatilgan. Sinf ikkita atributni o'z ichiga oladi: jarayon progressi vidjetiga

ko'rsatkich va qadam raqamini aks ettiruvchi butun son. Sinfda ikkita slot aniqlangan: slotStep() va slotReset() . Birinchisi, qadamni birga oshirish, ikkinchisi - jarayon ko'rsatkichini nolga o'rnatish. #ifndef _Progress_h_ #define _Progress_h_ #include <QWidget> class QProgressBar; class Progress : public QWidget { Q_OBJECT private: QProgressBar* m_pprb; int m_nStep; public: Progress(QWidget* pobj = 0); public slots: void slotStep (); void slotReset(); }; #endif //_Progress_h_ 2. Qt muhiti  Dialog  oynalari  haqida  ma’lumot ,ularning  xossa  va  hodisalari . Dialog oynasi foydalanuvchi va dastur o'rtasidagi o'zaro aloqani ta'minlovchi markaziy element hisoblanadi. Ushbu vidjet bir qator sozlamalarni o'z ichiga olib, ularning o'zgarishi dastur bajarilishini o’zgarishiga olib keladi. Dialog oynalari har doim yuqori darajali vidjetlar va ular alohida sarlavhasiga ega. Ular uchta asosiy toifaga bo'linishi mumkin:  Shaxsiy oynalar;  Standart oynalar;  xabarlar oynasi.

Dialog oynalarini yaratish qoidalari Dialogli oynalar har qanday dastur uchun zarurdir va ularni yaratish odatda dasturchi bajarishi kerak bo'lgan odatiy ishdir. Dialog oynasini yaratish aslida kerakli elementlarni joylashtirishdan ko'proq narsani o'z ichiga oladi. O'qishga vaqt sarflamasligi, balki darhol ishlashni boshlashi uchun foydalanuvchiga dialog oynasi bilan ishlashning intuitiv usulini taqdim etish muhimdir. Intuitiv ishlashni ta'minlash uchun quyidagi qoidalarga rioya qilish kerak:  dialog oynasini erkin va sodda saqlashga harakat qiling. Dastur sozlamalari dialog oynasida faqat asosiy tugmachalar kerak bo'ladi, masalan: Ok, Cancel(Bekor qilish) va Apply(Qo'llash);  vidjetlarni mantiqiy guruhlarga ajratib, ramkalar va chiziqlar bilan ajratish. Ajratish uchun gorizontal va vertikal chiziqlardan foydalaning;  Hech qachon dialog oyna tarkibini siljitib ko’rsatiladigan soha sifatida tayyorlab bo'lmaydi. Agar oynada ko'plab elementlar bo'lsa, ularni guruhlarga bo'lishga harakat qiling va ularni yorliqlar yordamida joylashtiring;  dialog oynasidagi yorliqlardagi yozuvlar bir nechta satrdan joy olishi tavsiya etilmaydi, bu qidiruvni murakkablashtiradi;  o’lchami o’zgarmaydigan dialog oynalarini yaratishdan saqlaning. Foydalanuvchi har doim o'z xohishiga ko'ra oyna hajmini oshirishi yoki kamaytirishi kerak;  murakkab oynalarni qo'shimcha Help yordam tugmachasi bilan tayyorlash yaxshiroq, u bilan kontekstli yordam oynasi ochilishi kerak;  dialog oynalarini ochadigan menyu bo’limlari (…) bilan tugashi kerak, masalan Open ... . Foydalanuvchi menyu bo’limiga qarab dialog oynasini ochishini oldindan bilishi uchun shunday qilish tavsiya etiladi;  dialog oynalariga menyu qo'shmaslikka harakat qiling. Menyu asosiy dastur oynasida ishlatilishi kerak;  Imkoniyat bo'lsa, foydalanuvchilarga tanish bo'lgan standart vidjetlardan foydalaning. Esda tutingki, yangi boshqarish vositalarini o'rganish qo'shimcha vaqt talab qilishi mumkin;

 Sozlamalarni ko'rsatish uchun turli rangni ishlatishdan saqlaning. Aksariyat hollarda matn eng yaxshi alternativadir. Axir, bir xil rang turli mamlakatlarda har xil semantik ma'noga ega bo'lishi mumkin. Bundan tashqari, rang ajrata olmaydigan foydalanuvchilar uchun bu noqulay bo'lmasligi kerak;  foydalanuvchi nafaqat sichqoncha bilan, balki klaviatura bilan ham dialog oynasi bilan ishlashi kerakligini unutmang. Buning uchun barcha oynali elementlarni tezkor tugmachalar bilan ta'minlash kerak, ya’ni biror harfni <Alt> tugmasibilan birga bosib kerakli elementga yo'naltirish imkoniyati bo’lishi kerak. QDialog sinfi QDialog sinfi Qt sinf ierarxiyasidagi barcha dialog oynalari uchun asosiy sinfdir. Har qanday vidjetni yuqori darajadagi vidjetga aylantirish bilan dialog oynasiga aylantirish mumkin, lekin, barcha dialog oynalariga kerak bo'ladigan bir qator xususiyatlarni taqdim etadigan QDialog sinfidan foydalanish yanada qulayroq. Dialogli oynalar ikki guruhga bo'lingan:  modal;  modallmas. Modallik va modallmaslik rejimi mos ravishda QDialog ::setModal () va QDialog:: isModal () usullari yordamida o'rnatilishi mumkin. True qiymat - modal va False - modallmaslikni anglatadi. Modal dialog oynalari Ushbu oynalar odatda muhim xabarlarni namoyish qilish uchun ishlatiladi. Masalan, ba'zida ayrim xato xabarlarga, foydalanuvchi dasturni ishlatishni davom ettirishdan oldin javob berishi kerak. Modal oynalar dasturni to'xtatadi va u ishlashni davom ettirish uchun bunday oynani yopish kerak. Bunday hollarda modal dialog oynasi foydalanuvchining e'tiborini jalb qilish uchun juda mos keladi. Ilovani blokirovka qilish uchun faqat dialog oynasi uchun hodisalar qatori ishga tushiriladi va boshqa klaviatura, sichqoncha va dasturdagi boshqa hodisalar e'tiborga olinmaydi. Ushbu hodisa exec() slotini chaqirish bilan boshlanadi, u dialog oynasi yopilgandan keyin butun sonni qaytaradi. Ushbu qiymat bosilgan