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

Docx

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

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

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

Продавец

Bohodir Jalolov

Ma’lumotlar buferi bilan ishlash. Tezkor panellar

Купить
Mavzu:  Ma’lumotlar buferi bilan ishlash. Tezkor panellar.
Reja:
1. Ma’lumotlar buferi bilan bog’liq jarayonlarni dasturlash. 
2. Ish muhiti va tezkor panellar tushunchasi.Ish muhiti va tezkor panellar bilan
bog’liq jarayonlarni dasturlash. 
3. QSystemtrayicon sinfi haqida.
  1. Ma’lumotlar buferi bilan bog’liq jarayonlarni dasturlash.
Kompyuterda ishlashda foydalanuvchilar ko'pincha bir nechta dasturlar bilan
ishlaydi   va   ular   o'rtasida   ma'lumotlar   almashinuvi   zarur.   Ushbu   imkoniyatni
qo'llab-quvvatlash   uchun   ikkita   keng   tarqalgan   texnologiyalar   mavjud:   buferdan
foydalanish va moslamalarni sudrab olib tashlash. Shuni ta'kidlash kerakki, ushbu
texnologiyalar   ko'pincha  dasturlar   o'rtasida  ma'lumotlar  almashinuvi   uchun  emas,
balki faqat bitta dasturda ishlashda qo'llaniladi.
Bufer
Bufer turli xil ilovalar o'rtasida ma'lumot almashish imkoniyatini beradi. Bu
ma'lumotlarni   bitta   dasturdan   boshqasiga   nusxalashning   eng   mashhur   usullaridan
biridir.   Bu   tizimda   ishlaydigan   barcha   ilovalar   kirish   imkoniyatiga   ega   bo'lgan
xotira   sohasi.   Ularning   har   biri   buferga   ma'lumot   yozishi   yoki   o'qishi   mumkin.
Bufer   dasturlari   standart   buyruqlarni   ta'minlashi   kerak:   qirqish,   nusxalash   va
joylashtirish   va   bu   buyruqlar   foydalanuvchi   ishini   tezlashtirish   uchun   maxsus
tugmachalarni  birikmalar  bilan ta'minlanishi  kerak:  <Ctrl> + <X>, <Ctrl> + <C>
va <Ctrl>+ <V>.
Bufer bilan ishlash uchun Qt da Qclipboard sinfidan foydalanadi. Siz ushbu
sinfning   ob'ektini   yaratishga   urinmasligingiz   kerak,   chunki   u   dastur   ishga
tushganda   avtomatik   ravishda   yaratiladi   va   faqat   birlikdagi   dasturda   bo'lishi
mumkin. QClipboard sinfi har safar dasturlardan biri buferga yangi ma'lumotlarni
joylashtirganda   dataChanged()   signalini   yuboradi.   Agar   buferga   joylashtirilgan
ma'lumotlarni   boshqarish   zarur   bo'lsa,   u   holda   bu   signal   mos   keladigan   uyaga
ulanadi. Masalan:
connect(qApp-
>clipboard(),SIGNAL(dataChanged()),pwgt,SLOT(slotDataControl()));
Ma'lumotlar   buferga   setText()   usuli   yordamida   joylashtirilishi   mumkin,
setPixmap(),setImage() или setMimeData().Masalan:
QClipboard* pcb = QApplication::clipboard();
pcb->setText("My Text"); SetMimeData   ()   usulidan   foydalanib,   buferga   istalgan   turdagi   ma'lumotlarni
kiritishingiz mumkin.
Usul   QMimeSource   sinfidan   meros   bo'lib   o'tgan   sinf   ob'ektiga   ko'rsatgichni
qabul qiladi.
QMimeSource - bu boshqa formatlarga o'tkazilishi mumkin bo'lgan ma'lumotlar
turlari uchun asos bo'lgan mavhum sinf.
Matn(),   image(),   pixmap()   va   mimeData()   usullaridan   foydalangan   holda
ma'lumotlar almashish buferidan olinadi. Masalan:
QClipboard* pcb = QApplication::clipboard();
QString str = pcb->text();
if (!str.isNull()) {
qDebug() << "Clipboard Text: " << str;
}
2.QSystemtrayicon sinfi haqida.
Uning   ishlatilishi   juda   sodda.   Belgini   o'rnatish   uchun   setIcon   ()   usulini
chaqiring   va   uni   bildirishnoma   maydonida   ko'rsatish   uchun   show   ()   usulini
chaqiring.   Agar   sizga   foydalanuvchiga   xabarni   ko'rsatish   kerak   bo'lsa,   u   holda
showMessage() usulini chaqirishingiz kerak.
Shuningdek,   setToolTip   ()   usuli   yordamida   foydalanuvchi   uchun
sichqonchani   dasturingiz   piktogrammasi   ustiga   qo'yib,   uning   nomini   va   ehtimol
uning   holati   to'g'risida   ma'lumotni   ko'rishi   uchun   foydalanuvchi   uchun   ko'rsatma
o'rnatish   maqsadga   muvofiqdir.   Va,   albatta,   aksariyat   hollarda,   sizning
bildirishnoma   maydonidan   o'zingizning   dasturingiz   bilan   ishlash   uchun   kontekst
menyusini o'rnatishingiz kerak bo'lishi mumkin. Buning uchun
setContextMenu   ()   usuli   taqdim   etiladi.Keling,   oddiy   dastur   yozish   orqali   ilgari
aytilgan barcha imkoniyatlarni tasvirlab beraylik.
Ushbu   dasturda   foydalanuvchi   quyidagi   buyruqlarni   tanlashi   mumkin   bo'lgan
kontekst menyusi mavjud:
Application   Ilova   oynasini   ko'rsatish   /   yashirish   -   Shaklda   ko'rsatilgandek
ko'rsatiladi. 7 oyna. Agar oyna ilgari ko'rinadigan bo'lsa, u holda u yashirin bo'ladi;   Show Message(xabar) - rasmda ko'rsatilgan xabarni ko'rsatadi. 
  Change Icon(iconka fayli) - qor rasmini yulduzcha va aksincha o'zgartiradi;
   Quit (Chiqish) .
                     7 -rasm                                                                  8 -rasm
                           9-rasm                                                                   10-rasm
1. Ish   muhiti   va   tezkor   panellar   tushunchasi.Ish   muhiti   va   tezkor   panellar
bilan bog’liq jarayonlarni dasturlash.
#include <QtGui>
#include "SystemTray.h"
int main(int argc, char** argv)
{
QApplication app(argc, argv);
SystemTray st;
QApplication::setQuitOnLastWindowClosed(false);
return app.exec();
}
Listing 7-dagi asosiy dasturda biz shunchaki vidjet yaratamiz. Ilova oynasini
yopish hech qachon dasturimizni tugatmasligi kerakligi sababli biz QApplication ::
setQuitOnLastWindow   ()   statik   usulini   chaqiramiz   va   unga   noto'g'ri   ma'lumot
beramiz.  Qt-ning  vidjet  oynalari   sukut  bo'yicha   ko'rinmaydi,   bu  juda   zo'r,  chunki
umuman,   bildirishnoma   maydoni   uchun   mo'ljallangan   dasturlar,   ushbu   sohada ishga   tushirilgandan   so'ng,   faqat   ularning   belgisini   ko'rsatadi   va   derazalari   yo'q.
Shu sababli, asosiy dastur odatdagi show() usulidagi chaqiruvga ega emas.
Файл SystemTray.h
#ifndef _SystemTray_h_
#define _SystemTray_h_
#include <QLabel>
class QSystemTrayIcon;
class QMenu;
class SystemTray : public QLabel {
Q_OBJECT
private:
QSystemTrayIcon* m_ptrayIcon;
QMenu* m_ptrayIconMenu;
bool m_bIconSwitcher;
protected:
virtual void closeEvent(QCloseEvent*);
public:
SystemTray(QWidget* pwgt = 0);
public slots:
void slotShowHide ();
void slotShowMessage();
void slotChangeIcon ();
};
Listing   7-dagi   sarlavha   faylida   biz   dasturimiz   uchun   oyna   sinfini   aniqlaymiz.
Yorliqni ko'rsatish uchun u QLabel sinfidan meros qilib olinadi.
Bizning sinf uchta xususiyatni o'z ichiga oladi:
   bizga   bildirishnoma   maydonidan   foydalanish   imkoniyatini   beradigan
QSystemTrayIcon ob'ekti (m_ptrayIcon ko'rsatkichi);
   kontekst   menyusini   amalga   oshirish   uchun   zarur   bo'lgan   QMenu   vidjeti
(m_ptrayIconMenu ko'rsatkichi); _   Mantiqiy   turdagi   m_bIconSwitcher   o'zgaruvchisi,   biz   raster   tasvirlarning
o'zgarishini boshqarishimiz kerak.
Biz   oynani   yopish   hodisasining   closeEvent()   usulini   haddan   tashqari   yukladik,
chunki bizning dasturimiz unga boshqacha munosabatda bo'lishi kerak.
Uchta   slot,   slotShowHide   (),   slotShowMessage   ()   va   slotChangeIcon   ()   kontekst
menyusi buyruqlarini bajaradi.
SlotChangeIcon   ()   uyasi   Change   Icon   buyrug'iga   tayinlangan   va   bildirishnoma
maydonida bitmap-ni o'rnatish uchun mo'ljallangan. Uni chaqirganda biz har doim
mantiqiy   o'zgaruvchining   m_bIconSwitcher   qiymatini   o'zgartiramiz   va   uning
holatiga   qarab   img1.bmp   yoki   img2.bmp   ikkita   bitmapalaridan   birini   qo'llaymiz.
Keyin setIcon () usulini chaqirish orqali uni bildirishnoma maydoniga o'rnatamiz.
Ekran vidjeti
QDesktopWidget   klassi   ekranning   grafik   ma'lumot   tarkibiga   kirish   uchun
javobgardir.
Bundan   tashqari,   ushbu   sinf   sizning   ilovangiz   oynasini   to'g'ri   joylashtirish
uchun   juda   foydali   bo'lishi   mumkin,   chunki   foydalanuvchi   turli   xil   ekran
o'lchamlarini   ishlatishi   mumkin.   Ushbu   vidjet   faqat   bitta   nusxada   mavjud   va   uni
yaratish   mumkin   emas,   lekin   siz   unga   ko'rsatgich   olishingiz   mumkin.   Bunga
QApplication   sinfida   aniqlangan   statik   desktop   ()   usulini   chaqirish   orqali
erishiladi.   Shunday   qilib,   sizning   oynangizni   ekranning   o'rtasida   aniq   ko'rsatish
uchun siz quyidagilarni qilishingiz mumkin:
1.   QApplication   ::   desktop   ()   ga   murojaat   qilib   ekran   vidjetiga   ko'rsatgich
oling.
2.   width   ()   va   height   ()   usullaridan   foydalanib,   joriy   ekran   o'lchamlarini
aniqlang.
3. Ilova oynasining joriy o'lchamlari va o'lchamlariga (deraza vidjetining o'zi
kengligi) va balandligi () muvofiq oynaning o'rtadagi holatini hisoblang.
4. move () usulini chaqirish orqali uni o'rnating.
Bularning barchasi bitta dastur satrida amalga oshirilishi mumkin:
pwgt->move((QApplication::desktop()->width() — pwgt->width()) / 2, (QApplication::desktop()->height() — pwgt->height()) / 2);
Bundan tashqari, ushbu sinf tizimdagi monitorlar soni, ularning o'lchamlari
haqida   ma'lumot   beradi   va   vidjetning   ma'lum   bir   pikseli   joylashgan   ekranni
qaytarishi mumkin.
Bu   juda   foydali   bo'lishi   mumkin,   masalan,   vidjetlarning   koordinatalarini   ular
joylashgan monitorlar bilan birga sozlamalarda saqlash uchun, keyinchalik hamma
narsani avvalgi holatiga qaytarish uchun.
  numScreens () - tizim monitorlari sonini qaytaradi;
  primaryScreen () - asosiy qilib tuzilgan monitor sonini qaytaradi;
   isVirtualDesktop   ()   -   virtual   ish   stoli   rejimini   tanib   olishga   imkon   beradi.
Virtual ish stoli holatida bir nechta monitor bitta birlik sifatida ishlatiladi,
va  dastur  oynasi   bir  monitordan  ikkinchisiga  o'tishi   va  darhol   bir  vaqtning  o'zida
boshqa monitorda bo'lishi mumkin;
  screenNumber () - koordinatalarni (QPoint ob'ekti) argument sifatida qabul qiladi
va   shu   koordinatali   piksel   joylashgan   monitor   sonini   qaytaradi.   Masalan;   misol
uchun:
int nScreen = desktopWidget-> screenNumber (QPoint (320, 115));
Ekranlarning   har   biridan   ekran   raqamini   QDesktopWidget   ::   screenGeometry   ()
usuliga   o'tkazib,   mos   ravishda   width   ()   va   height   ()   usullarini   chaqirish   orqali
hozirgi   gorizontal   va   vertikal   o'lchamlarini   so'rash   mumkin.   Quyidagi   misol
tizimda mavjud bo'lgan barcha monitorlarni joriy o'lchamlari bilan aks ettiradi:
QDesktopWidget* pwgt = QApplication::desktop();
for (int i = 0; i < pwgt->numScreens(); ++i) {
qDebug() << "Screen:" << i;
qDebug() << "width:" << pwgt->screenGeometry(i).width();
qDebug() << "height:" << pwgt->screenGeometry(i).height();
}
Agar   foydalanuvchi   ekranlardan   birining   piksellar   sonini   o'zgartirsa,
QDesktopWidget   klassi   ekranning   raqamini   o'zgartirgan()   signalni   yuboradi   va ishlatilayotgan   monitorlar   soni   o'zgarganda,   screenCountChanged()   signali
yuboriladi.
Endi   ekranning   grafik   ma'lumotlariga   kirish   imkoniyatiga   qaytamiz.   Uni
Capture   Screen   tugmachasini   bosganingizda   kompyuter   ekranidan   skrinshotlarni
oladigan   va   olingan   tasvirni   darhol   ko'rsatadigan   dastur   (9-rasm)   misolida
ko'rsatish mumkin.
Листинг 8. Файл main.cpp
#include <QtGui>
#include "GrabWidget.h"
int main(int argc, char** argv)
{
QApplication app(argc, argv);
GrabWidget wgt;
wgt.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 buferi bilan ishlash. Tezkor panellar

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

  • 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