Mavzu: Dialoglar bilan ishlash. Bir nechta formalar bilan ishlash



Yüklə 19,5 Kb.
tarix09.09.2023
ölçüsü19,5 Kb.
#142242
22-mustaqil ta\'lim


120-guruh talabasi Shaydullayev Muhammadalining Algoritimlash va dasturlash fanidan tayyorlagan
22-MUSTAQIL TALIM ISHI

MAVZU: Dialoglar bilan ishlash.Bir nechta formalar bilan ishlash

Dialoglar, ilovadagi foydalanuvchining interaktiv ravishda ma'lumotlar kiritishi yoki tanlashi uchun ishlatiladigan pop-up oynalardir. C++ tilida, GTK+ yoki Qt frameworklaridan foydalanib dialoglar yaratish va ular bilan ishlash mumkin.
GTK+ frameworki orqali dialog yaratish uchun quyidagi misoldan foydalanishingiz mumkin:
#include
static void on_button_clicked(GtkWidget *widget, gpointer data) {
GtkWidget *dialog;
dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Hello, Dialog!");
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}

int main(int argc, char *argv[]) {


gtk_init(&argc, &argv);

GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);


g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);

GtkWidget *button = gtk_button_new_with_label("Show Dialog");


g_signal_connect(button, "clicked", G_CALLBACK(on_button_clicked), NULL);

GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);


gtk_container_add(GTK_CONTAINER(box), button);
gtk_container_add(GTK_CONTAINER(window), box);

gtk_widget_show_all(window);

gtk_main();

return 0;


}
Ushbu misol GTK+ frameworkini qo'llaydigan ilovada dialog yaratishni ko'rsatadi. on_button_clicked nomli funktsiya tugma bosilganda chaqiriladi va "Hello, Dialog!" xabarni ko'rsatuvchi dialog oynasini chiqaradi.
main funksiyasida GTK+ ning yoqilganligini tasdiqlash uchun gtk_init chaqiriladi. Oyna (window) va tugma (button) yaratiladi va ularga bog'langan signal (destroy, clicked) vaqtincha qo'yiladi. Tugma oynasini qabul qiluvchi box (box) yaratiladi va tugma unga qo'shiladi. Box esa oyna ichiga qo'shiladi.
Qt frameworki orqali dialog yaratish uchun quyidagi misoldan foydalanishingiz mumkin:
#include
#include
#include
#include
#include

int main(int argc, char *argv[]) {


QApplication app(argc, argv);
QWidget window;
QVBoxLayout layout(&window);
QPushButton button("Show Dialog");
QObject::connect(&button, &QPushButton::clicked, [&]() {
QMessageBox::information(&window, "Dialog", "Hello, Dialog!");
});

layout.addWidget(&button);

window.show();

return app.exec();


}
Ushbu misol Qt frameworkini qo'llaydigan ilovada dialog yaratishni ko'rsatadi. QPushButton tugmasi bosilganda chaqiriladigan lambda funksiya orqali "Hello, Dialog!" xabarni ko'rsatuvchi dialog oynasi chiqariladi.
main funksiyasida QApplication obyekti yaratiladi va ilova qo'llanishini boshlash uchun app.exec chaqiriladi. QWidget obyekti (window) yaratiladi va QVBoxLayout obyekti (layout) unga bog'langan.
PushButton obyekti (button) yaratiladi va QObject::connect orqali tugma bosilganda chaqiriladigan signal (clicked) vaqtincha bog'lanadi. Tugma layout.addWidget orqali layoutga qo'shiladi.
Dialoglar, foydalanuvchining ilovaga interaktiv ravishda bo'lishini ta'minlaydi va ma'lumot almashish uchun yaxshi vosita sifatida xizmat qiladi. Sizning tanlagan frameworkingizga mos keladigan dialoglarni yaratish va ularga mos ravishda bog'lanish mumkin.
Bir nechta formalar bilan ishlash
Bir nechta formlar bilan ishlash, ilovada ko'p sayda forma yaratish va ular orasida ma'lumot almashish va boshqarish imkonini beradi. Quyidagi C++ misoli ko'p sayda formalar bilan ishlashni ko'rsatadi:
#include
#include
#include
#include
#include
#include
#include

int main(int argc, char *argv[]) {


QApplication app(argc, argv);

QWidget mainWidget;

// Form 1
QWidget form1;
QVBoxLayout layout1(&form1);
QLabel label1("Form 1");
QLineEdit lineEdit1;
QPushButton button1("Submit");
layout1.addWidget(&label1);
layout1.addWidget(&lineEdit1);
layout1.addWidget(&button1);
QObject::connect(&button1, &QPushButton::clicked, [&]() {
QString text = lineEdit1.text();
QMessageBox::information(&form1, "Form 1", "Entered Text: " + text);
});

// Form 2


QWidget form2;
QVBoxLayout layout2(&form2);
QLabel label2("Form 2");
QLineEdit lineEdit2;
QPushButton button2("Submit");

layout2.addWidget(&label2);


layout2.addWidget(&lineEdit2);
layout2.addWidget(&button2);

QObject::connect(&button2, &QPushButton::clicked, [&]() {


QString text = lineEdit2.text();
QMessageBox::information(&form2, "Form 2", "Entered Text: " + text);
});

// Main layout


QVBoxLayout mainLayout(&mainWidget);
mainLayout.addWidget(&form1);
mainLayout.addWidget(&form2);

mainWidget.show();

return app.exec();
}
Ushbu misolda, ilovada "Form 1" va "Form 2" nomli ikkita forma yaratiladi. Har bir forma o'ziga xos QLabel, QLineEdit va QPushButton elementlari bilan to'ldiriladi.

Har bir tugma bosilganda, bog'lanayotgan forma uchun clicked signal chaqiriladi. Signal chaqirildikda, QLineEdit-dan kiritilgan matn olinadi va QMessageBox::information orqali kiritilgan matn chiqariladi.


Barcha formalar va ularning komponentlari QVBoxLayout orqali asosiy oynaga (mainWidget) qo'shiladi. mainWidget ko'rsatiladi va ilova ishga tushiriladi.
Siz misoldagi ko'p sayda formlarni va ularning komponentlarini o'zgartirishingiz mumkin. Shunday qilib, ilovada bir nechta formalar bilan ishlashingiz mumkin.

Yüklə 19,5 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin