Войти Регистрация

Docx

  • Рефераты
  • Дипломные работы
  • Прочее
    • Презентации
    • Рефераты
    • Курсовые работы
    • Дипломные работы
    • Диссертациии
    • Образовательные программы
    • Инфографика
    • Книги
    • Тесты

Информация о документе

Цена 2000UZS
Размер 210.4KB
Покупки 0
Дата загрузки 07 Ноябрь 2026
Расширение docx
Раздел Рефераты
Предмет Педагогика

Продавец

Bohodir Jalolov

Ma’lumotlar va jarayonlarni turli ko‘rinishda tasvirlash usullari

Купить
Mavzu:   Ma’lumotlar va jarayonlarni turli ko’rinishda tasvirlash usullari . 
Reja:
1. Ma’lumotlar va jarayonlarni turli ko’rinishda tasvirlash. 
2. Qt   dasturlash   muhitida   TreeWidjet,   LinkedList   va   ProgressBar   vidjetlari,
ularning xossa va hodisalari.
  1. Ma’lumotlar va jarayonlarni turli ko’rinishda tasvirlash. 
Displey elementlari foydalanuvchi harakatlarida faol ishtirok etmaydi va nima
bo'layotgani to'g'risida ma'lumot berish uchun ishlatiladi. Ushbu ma'lumotlar
matnli yoki grafik xarakterga ega bo'lishi mumkin (rasmlar, grafikalar).
Yozuvlar 
Yozuv vidjeti dastur holatini yoki tushuntirish matnini ko'rsatish uchun ishlatiladi
va matn maydoni bo'lib, foydalanuvchi tomonidan matni o'zgartirilishi mumkin
emas. Ushbu vidjet ko'rsatadigan ma'lumotni faqat dastur o'zi o'zgartirishi
mumkin. Shunday qilib, ilova foydalanuvchini uning o'zgargan holati to'g'risida
xabardor qilishi mumkin, ammo foydalanuvchi ushbu ma'lumotni vidjetning o'zida
o'zgartira olmaydi. QLabel yorlig'i vidjet sinfi QLabel sarlavha faylida aniqlangan.
Yozuv vidjeti QFrame sinfidan meros bo'lib o'tadi va chegarasi bo'lishi mumkin. U
ko'rsatadigan ma'lumotlar matnli, grafik yoki animatsion xarakterga ega bo'lishi
mumkin, ularni uzatish uchun setText (), setPixmap () va setMovie () slotlari
ishlatiladi.
Matnning holatini setAlignment () usuli yordamida boshqarish mumkin. Usulda
ko'plab bayroqlar ishlatiladi, ularning ba'zilari jadvalda ko'rsatilgan. Qadriyatlar
bir-biriga mos kelmasligini unutmang va bu ularni | mantiqiy operatsiyasi
yordamida bir-biri bilan birlashtirishga imkon beradi (Yoki). AlignVCenter va
AlignHCenter qiymatlaridan tashkil topgan AlignCenter qiymati yaxshi misoldir.
1 -Jadval. Qt nomlar maydonining AlignmentFlags qiymatlari 1-rasmdan ko'rinib turibdiki, yorliq vidjeti nafaqat oddiy matnni, balki
HTML (HyperText Markup Language) formatidagi matn ma'lumotlarini ham aks
ettirishi mumkin. Ushbu misolda (Listing 1) HTML, matn, jadval va bitmapni
ko'rsatish uchun foydalanilgan.
1-listing.
#include <QtGui>
int main(int argc, char** argv)
{ QApplication app(argc, argv);
QLabel lbl("<H1><CENTER>QLabel—HTML Demo</CENTER></H1>"
"<H2><CENTER>Image</CENTER><H2>"
"<CENTER><IMG BORDER=\"0\" SRC=\"img.jpg\"></CENTER>"
"<H2><CENTER>List</CENTER><H2>"
"<OL><LI>One</LI>"
" <LI>Two</LI>"
" <LI>Three</LI>" 
"</OL>"
"<H2><CENTER>Font Style</CENTER><H2>"
"<CENTER><FONT COLOR=RED>"
" <B>Bold</B>, <I>Italic</I>, <U>Underline</U>"
"</FONT></CENTER>"
"<H2><CENTER>Table</CENTER></H2>"
"<CENTER> <TABLE>"
" <TR BGCOLOR=#ff00ff>"
" <TD>1,1</TD><TD>1,2</TD><TD>1,3</TD><TD>1,4</TD>"
" </TR>"
" <TR BGCOLOR=YELLOW>" " <TD>2,1</TD><TD>2,2</TD><TD>2,3</TD><TD>2,4</TD>"
" </TR>"
" <TR BGCOLOR=#00f000>"
" <TD>3,1</TD><TD>3,2</TD><TD>3,3</TD><TD>3,4</TD>"
" </TR>"
"</TABLE> </CENTER>");
lbl.show();
return app.exec();
}
Listing 1 da lbl yorlig'i vidjetini yaratishda HTML birinchi parametr sifatida
konstruktorga uzatiladi. Ushbu vidjetni yaratgandan so'ng uni o'tkazish mumkin
setText () slot usuli yordamida. Konstruktorning ikkinchi parametri o'tkazib
yuborilgan va u sukut bo'yicha 0 bo'lgani uchun uni yuqori darajadagi vidjetga
aylantiradi.
2-rasmda ko'rsatilgan quyidagi misol (Listing 2) grafik formatdagi
ma'lumotni yorliq vidjetida ko'rsatish imkoniyatini namoyish etadi.
2 -rasm .  Grafik ma’lumotni
ko’rsatish
виджетом надписи
Ma’lumotlarni HTML
formatda ko’rsatish 2-listing
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QPixmap pix;
pix.load("mira.jpg");
QLabel lbl;
lbl.resize(pix.size());
lbl.setPixmap(pix);
lbl.show();
return app.exec();
}
Listing 2 da ko'rib turganingizdek, avval QPixmap bitmap ob'ekti yaratiladi.
Shundan so'ng, load () usulini chaqirib, unga mira.jpg fayli yuklanadi. Keyingi
qadam yorliq vidjetini o'zi - QLabel sinfining lbl ob'ekti yaratishdir. Keyin resize ()
usulini chaqirib, uning o'lchamlari bitmap o'lchamlariga moslashtiriladi. Nihoyat,
setPixmap () usuliga murojaat vidjetda bitmapning o'zi o'rnatiladi.
SetBuddy () usuli yordamida yorliqli vidjet boshqa har qanday vidjet bilan
bog'lanishi mumkin. Agar yorliq matnida & bo'lsa, u holda uning oldida turgan
belgi ostiga chiziladi. Ushbu belgini <Alt> tugmachasi bilan birga bosish setBuddy
() usuli bilan o'rnatilgan vidjetga yo'naltiriladi. 3-rasmda bunday vidjetlar, 3-
ro'yxatda esa tegishli dastur kodlari ko'rsatilgan.
QLabel klassi qo'llab-quvvatlaydi gipermatnli havolalar uchun va havola
bosilganda linkActivated () signalini yuboradi,bu sahifa chaqiriladigan uyaga
ulanishi mumkin.Ammo yana bir oson yo'li bor
QLabel klassi gipermatnli havolalarni qo'llab-quvvatlaydi va havola
bosilganda u sahifa chaqiriladigan uyaga ulanishi mumkin bo'lgan linkActivated ()
signalini yuboradi, ammo yana bir oson yo'li bor, ya'ni QLabel vidjeti o'zi veb- brauzerda havolalarni ochishi mumkin bo'lgan holatga keladi (bu
QDesktopServices :: openUrl () statik usulini bilvosita chaqirish orqali erishiladi).
Buning uchun faqat setOpenExternalLinks() usulini haqiqiy parametr bilan
chaqirishingiz kerak. Masalan; misol uchun:
QLabel* plbl =new QLabel("<A 
HREF=\"www.bhv.ru\">http://www.bhv.ru</A>");
lbl.setOpenExternalLinks(true);
Bitta satrli matn maydoni
Ushbu vidjet eng oddiy kirish elementidir. Bitta satrli matn maydonining
QLineEdit klassi QLineEdit sarlavha faylida aniqlangan.
Matn qutisi matn satrini kiritish uchun to'rtburchaklar maydondan iborat, shuning
uchun bir nechta satrlarni kiritish kerak bo'lganda ushbu vidjetdan foydalanmaslik
kerak. Ko'p satrli matn kiritish uchun QTextEdit klassi mavjud. Vidjetdagi matn
text() usuli bilan qaytariladi. Agar vidjetning tarkibi o'zgargan bo'lsa, u holda
textChanged () signali yuboriladi. ReturnPressed () signali foydalanuvchi <Enter>
tugmachasini bosganligi haqida xabar beradi. Haqiqiy parametr bilan setReadOnly
() usulini chaqirish faqat o'qish rejimini o'rnatadi, unda foydalanuvchi faqat matnni
ko'rishi mumkin, uni tahrir qilmaydi. Vidjetni ishga tushirish uchun matn setText()
uyasiga uzatilishi mumkin.
Bir qatorli matn maydoni uchun parolni kiritish rejimini yoqishingiz
mumkin, bu setEchoMode () usulini Parol bayrog'i bilan chaqirish orqali
o'rnatiladi. Natijada kiritilgan belgilar ko'rsatilmaydi, aksincha * bilan
almashtiriladi.
Shaklda ko'rsatilgan dastur oynasi. 4-rasmda ikkita bitta qatorli maydon mavjud,
ulardan bittasi parol kiritish rejimiga o'rnatiladi. Ushbu maydonga kiritilgan matn
yorliq vidjetida ko'rsatiladi.
Listing 6. main.cpp fayli
#include <QtGui>
int main (int argc, char ** argv) {
QApplication dasturi (argc, argv);
QWidget wgt;
QLabel * plblDisplay = yangi QLabel;
plblDisplay-> setFrameStyle (QFrame :: Box | QFrame :: Ko'tarilgan);
                                plblDisplay-> setLineWidth (2);
                                plblDisplay-> setFixedHeight (50);
QLabel * plblText = yangi QLabel ("& Text:");
QLineEdit * ptxt = yangi QLineEdit;
plblText-> setBuddy (ptxt);
QObject :: connect (ptxt, SIGNAL (textChanged (const QString &)),
plblDisplay, SLOT (setText (const QString &))
);
QLabel * plblPassword = yangi QLabel ("& Parol:");
QLineEdit * ptxtPassword = yangi QLineEdit;
plblPassword-> setBuddy (ptxtPassword);
ptxtPassword-> setEchoMode (QLineEdit :: Parol);
QObject :: connect (ptxtPassword, SIGNAL (textChanged (const QString &)),
plblDisplay, SLOT (setText (const QString &))
//; Layoutni sozlash
QVBoxLayout * pvbxLayout = yangi QVBoxLayout;
pvbxLayout-> addWidget (plblDisplay);
pvbxLayout-> addWidget (plblText);
pvbxLayout-> addWidget (ptxt);
pvbxLayout-> addWidget (plblPassword);
pvbxLayout-> addWidget (ptxtPassword);
wgt.setLayout (pvbxLayout);
wgt.show ();
return app.exec ();
} Listing 6 yorliqli vidjetni yaratadi (plblDisplay ko'rsatkichi). SetFrame ()
usuli freymning uslubini, setLineWidth () esa uning kengligini o'rnatadi. Yorliq
vidjetining balandligi setFixedHeight () usuli yordamida aniqlanadi. Yana ikkita
yorliq, plblText va plblPassword, setBuddy () usuli yordamida bitta qatorli matn
qutisi vidjetlari bilan bog'langan. Keyin textChanged () signallari kiritilgan matnni
ko'rsatish uchun plblDisplay yorlig'i vidjetining setText () uyalariga ulanadi. Va
nihoyat, vidjetlar QVBoxLayout sinfining ob'ekti yordamida vertikal ravishda
joylashtiriladi.
Oddiy ro'yxat
QListWidget klassi - bu foydalanuvchiga bir yoki bir nechta elementni
tanlashga imkon beruvchi ro'yxat vidjeti. Ro'yxat elementlari matn va bitmapalarni
o'z ichiga olishi mumkin. Ro'yxatga element qo'shish uchun addItem () usulini
chaqiring.Ushbu usul uning ikkita variantini amalga oshiradi: matn uchun va sinf
ob'ekti uchun QListWidgetItem. Agar siz barcha elementlarni ro'yxatdan olib
tashlashingiz kerak bo'lsa, unda siz aniq () uyaga murojaat qilishingiz kerak.
QListWidgetItem klassi ro'yxat elementlari uchun sinfdir. Ushbu sinflarning
ob'ektlarini yashirin ravishda yaratish mumkin, masalan, matnni QListWidget ::
addItem () uslubiga o'tkazish. Shuni ta'kidlash kerakki, QListWidgetItem klassi
elementlarning nusxalarini yaratishga imkon beruvchi nusxa konstruktorini taqdim
etadi. Shu maqsadda clone () usulidan foydalanishingiz mumkin.
Elementlarni qo’shish
Siz satrlar ro'yxatini o'z ichiga olgan QStringList-ni insertItems () uslubiga
o'tkazib, birdaniga bir nechta matnli elementlarni qo'shishingiz mumkin. Matn
elementini yaratish uchun insertItem () usulidan foydalanishingiz mumkin, bu erda
faqat bitta matn satrini o'tkazish kerak. QListWidgetItem ob'ekti ro'yxatga
insertItem () usuli yordamida ham kiritilishi mumkin. U addItem () usulidan farq
qiladi, chunki siz qo'shilgan elementning holatini aniq belgilashingiz mumkin.
Yaratilgan elementga bitmap berilishi mumkin, bu ro'yxat elementi ob'ektining
QListWidgetItem :: setIcon () usuli yordamida amalga oshiriladi. Shunisi e'tiborga loyiqki, ro'yxat elementlarida siz nafaqat bitmapalar va
matnlarni, balki vidjetlarni ham o'rnatishingiz mumkin. Buning uchun
QListWidget klassi setItemWidget () va itemWidget () usullarini belgilaydi.
SetItemWidget () usulining birinchi parametri ro'yxat elementi ob'ektiga
ko'rsatgich, ikkinchisi - vidjetga uzatilishi kerak. Uchun ro'yxat elementida
joylashgan vidjetga ko'rsatkichni olish uchun, ro'yxat elementi ob'ektiga
ko'rsatgichni itemWidget () uslubiga o'tkazishingiz kerak.
2. Qt dasturlash muhitida TreeWidjet, LinkedList va ProgressBar
vidjetlari, ularning xossa va hodisalari.
Progress bar
Progress bar bir emas vidjet ko'rsatadi, bir harakat foydalanish va dolgularda
chapdan   o'ngga.   Ko'rsatkichni   to'liq   to'ldirish   operatsiya   tugaganligi   to'g'risida
xabar   beradi.   Ushbu   vidjet   dastur   uzoq   muddatli   amallarni   bajarayotganda   talab
qilinadi   .   Bu   foydalanuvchiga   dastur   muzlatilmaganligini,   lekin   ishlayotganligini
bilib   olishiga   imkon   beradi.   Shuningdek,   u   qanchasi   bajarilganligini   va   hali
qanchasi   bajarilishi   kerakligini   ko'rsatadi   .   Ishlash   satri   vidjetining   QProgessBar
sinfi   QProgressBar   sarlavha   faylida   aniqlangan   .   Odatda   taraqqiyot   satrlari
gorizontal   bo'ladi,   lekin   buni   Qt   ::   Vertical   setOrientation   ()   uyasiga   o'tkazish
orqali o'zgartirish mumkin - shundan keyin u vertikal holda joylashadi.
4-rasmda   ko'rsatilgan   keyingi,   rivojlanish   satridan   foydalanishni   namoyish
etadi   .   Qadam   tugmachasini   bosish   indikator   qiymatini   bir   bosqichga   oshiradi.
Qayta tiklash tugmachasini bosish bilan indikator qiymati tiklanadi.
4-rasm.  Progressbar vidjeti 5-listingda   QWidget-   dan   meros   bo'lib   o'tgan   Progress   sinfining   ta'rifini   o'z
ichiga   olgan   Progress.h   faylini   ko'rsatadi   .   Sinf   ikkita   atributni   o'z   ichiga   oladi:
rivojlanish ko'rsatkichi vidjetiga ko'rsatgich va qadam raqamini ko'rsatuvchi butun
son   qiymati.   Sinf   ikkita   uyani   belgilaydi   :   slotStep   ()   va   slotReset   ().   Birinchisi,
qadamni   bir   marta   oshirish   uchun,   ikkinchisi   esa   rivojlanish   ko'rsatkichini   nolga
o'rnatish uchun.
Listing 5 Progress.cpp fayli
#include <QtGui>
#include "Progress.h"
// ----------------------------------------------------------------------
Progress::Progress(QWidget* pwgt/*= 0*/): QWidget(pwgt)
, m_nStep(0)
{
m_pprb = new QProgressBar;
m_pprb->setRange(0, 5);
m_pprb->setMinimumWidth(200);
m_pprb->setAlignment(Qt::AlignCenter);
QPushButton* pcmdStep = new QPushButton("&Step");
QPushButton* pcmdReset = new QPushButton("&Reset");
QObject::connect(pcmdStep, SIGNAL(clicked()), SLOT(slotStep()));
QObject::connect(pcmdReset, SIGNAL(clicked()), SLOT(slotReset()));
QHBoxLayout* phbxLayout = new QHBoxLayout;
phbxLayout->addWidget(m_pprb);
phbxLayout->addWidget(pcmdStep);
phbxLayout->addWidget(pcmdReset);
setLayout(phbxLayout);
}
void Progress::slotStep()
{ m_pprb->setValue(++m_nStep);
}
void Progress::slotReset()
{
m_nStep = 0;m_pprb->reset();
}
Sinf konstruktorida (Listing 5 ) m_nStep atributiga 0 qiymat beriladi, m_pprb
indikatori ob'ekti yaratilgandan so'ng, qadamlar soni setRange () usulini chaqirish
orqali   5   ga   o'rnatiladi   va   setMinimumWidth   ()   usuli   setni   o'rnatadi.   rivojlanish
ko'rsatkichi   vidjetining   minimal   uzunligi,   bizning   holimizda   uning   uzunligi   ikki
yuz pikseldan kam bo'lishini taqiqlaymiz.
SetAlignment () usulini Qt :: AlignCenter parametri bilan chaqirish indikatorni
foizlarni   markazda   ko'rsatish   uchun   o'rnatadi   (7.1-jadvalga   qarang).   So'ngra,   ikki
tugmalari, qadam va Reset , yaratilgan va ulangan slotStep () va slotReset () uyasi .
In slotStep (), qiymati m_nStep Atributlar bo'ladi 1 berilur va o'tdi QProgressBat ::
SetValue()   ning   uyasi   o'sish   bar   ob'ekti.   SlotReset   ()   uyasi   belgilab   qiymatini
m_nStep Atributlar bilan murojaat qilib, 0 va QProgressBat :: asl holatini tiklash )
(,   deklaratsiyalarini   indikator   asl   holatida.   Joylashtirish   widgets-   gorizontal
zurriyotlarini,   chapdan   o'ngga,   u   sozlash   uchun   zarur   bo'lgan   sahifa   tartibi   sinf
ob'ektini   QVBoxLayout   yilda   taraqqiyot   vidjet   ilgari   zarur   tartibda,   ham,   unga
qo'shib olgan, widgets- avlodlari.
Ierarxik ro'yxatlar
QTreeWidget   ierarxik   moda   va   qo'llab   ko'rsatadi   ro'yxati   mahsulot
foydalanuvchi   bir   yoki   bir   necha   ulardan   tanlang.   Bu   ko'pincha   disklar   va
kataloglarning   tarkibini   namoyish   qilish   uchun   ishlatiladi   .   Displey   maydoni
barcha   elementlarni   sig'dira   olmasa,   aylantirish   chiziqlari   paydo   bo'ladi.
SetItemWidget   ()   usuli   yordamida   vidjetlar   ierarxik   ro'yxatiga   joylashtirilishi
mumkin   .   Biroq,   bularning   barchasiga   ehtiyot   bo'lishingiz   kerak,   chunki
elementlardagi   vidjetlardan   foydalanish   ro'yxatning   ishlashini   sezilarli   darajada
sekinlashtirishi   mumkin   .   Bir   necha   yuz   elementlardan   boshlab,   bu   juda   sezilarli bo'ladi.   Agar   bo'lsa,   Shuning   uchun,   niyatidamiz   katta   bilan   ro'yxatlarini
foydalanish   elementlar   soni,   keyin   holda   ham,   albatta,   harakat   qiling   vidjet   yoki
ularni o'rnini , ularning teng vakolatxonalari. Masalan, katakchaning tugmachalari
uchun ularning taqdimotini istalgan ustunda o'rnatish mumkin.
Ro'yxat   elementlari   QTreeWidgetItem   sinfining   ob'ektlari   bo'lib,
ma'lumotlarning   bir   nechta   ustunlarini   ko'rsatish   imkoniyatini   beradi.
QTreeWidgetItem   sinfida   nusxa   ko'chirish   konstruktori   va   elementlarning
nusxalarini   yaratish   uchun   klon   ()   usuli   mavjud.   Foydalanish   addChildren   ()   va
insertChildren   ()   usullari,   siz   qo'shing   va   bir   vaqtning   o'zida   bir   nechta
elementlarni kiritish mumkin.
Agar   elementlarga   kichik   bitmapalarni   taqdim   etish   zarur   bo'lsa,   ular
QTreeWidgetItem :: setIcon () usuli va element matni QTreeWidgetItem :: setText
()   yordamida   o'rnatiladi   .   Ikkala   usulning   birinchi   parametri   ustun   raqamiga   mos
keladi. 5-rasm  ro'yxat uchta narsani o'z ichiga oladi. Joriy disk (C) elementini ikki
marta bosish ichki ichki elementlarni (papkalarni) yiqitadi va kengaytiradi.
                                                                    5-rasm. Ierarxik ro’yxat
main.cpp fayli
#include <QtGui>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QTreeWidget twg;
QStringList lst;
lst << "Folders" << "Used Space"; twg.setHeaderLabels(lst);
twg.setSortingEnabled(true);
QTreeWidgetItem* ptwgItem = new QTreeWidgetItem(&twg);
ptwgItem->setText(0, "Local Disk(C)");
ptwgItem->setIcon(0, QPixmap("drive.bmp"));
QTreeWidgetItem* ptwgItemDir = 0;
for (int i = 1; i < 20; ++i) {
ptwgItemDir = new QTreeWidgetItem(ptwgItem);
ptwgItemDir->setText(0, "Directory" + QString::number(i));
ptwgItemDir->setText(1, QString::number(i) + "MB");
ptwgItemDir->setIcon(0, QPixmap("folder.bmp"));
}
twg.setItemExpanded(ptwgItem, true);
twg.resize(250, 110);
twg.show();
return app.exec();
}            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 с.

Ma’lumotlar va jarayonlarni turli ko‘rinishda tasvirlash usullari

Купить
  • Похожие документы

  • 2001-yil sentabr voqealri va uning xalqaro munosabatlarga
  • 1945-1990-yillarda Buyuk Britaniya
  • 1918-1923 yillarda xalqaro munosabatlar, Versal Vashington siyetemasining tuzilishi
  • Ahmad al-farg‘oniy
  • Almashlab ekishni loyihalashtirish va joriy etish

Подтвердить покупку

Да Нет

© Copyright 2019-2026.

  • Инструкция по снятию с баланса
  • Контакты
  • Инструкция использования сайта
  • Инструкция загрузки документов
  • O'zbekcha