Аналог MessageBox в Qt

👁 34 просмотров

Чтобы использовать всплывающее окно QMessageBox сначала нужно подключить заголовочный файл кодом:

#include<QMessageBox>

Вариант 1. Дальше уже использовать класс QMessageBox для вывода окна кодом:

QMessageBox msgBox;
msgBox.setText("Hello Here");
msgBox.exec();

Вариант 2. Есть, также встроенные типы сообщений, которые можно вывести классом QMessageBox, которые вызываются посредством вызова статических функций данного класса, это:

QMessageBox::warning(0,"Warning", "Warning message text");
QMessageBox::information(0, "Information", "Information message text");
QMessageBox::critical(0, "Critical", "Critical message text");

Вариант 3. Есть, также возможность обработать , нажатые ответы на окне QMessageBox, как в этом примере:

QMessageBox msgBox;
// Заголовок сообщения
msgBox.setText("Testing.."); 
// Тип иконки сообщения
msgBox.setIcon(QMessageBox::Information); 
// Основное сообщение Message Box
msgBox.setInformativeText("Just show infornation."); 
// Добавление реагирования на софт клавиши
msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel); 
// На какой кнопке фокусироваться по умолчанию
msgBox.setDefaultButton(QMessageBox::Ok); 
/* Запускаем QMessageBox. После выполнения, в ret будет лежать значение кнопки, на которую нажали - это необходимо для дальнейшей обработки событий*/
int ret = msgBox.exec(); 
// Собственно вот этот case и отвечает за обработку событий
switch (ret) {   
    case QMessageBox::Save:
     // Сюда пишем обработку события Cancel
        break;
     case QMessageBox::Ok:
     // Сюда пишем обработку события Ok 
        break;
    default:
     // Сюда пишем обработку события по умолчанию
        break;
}

 

How to get and save screenshot in Qt

👁 32 просмотров

We can to get screen of device or screen of running app.

Code for get screen of device and save in .png format:

    QPixmap p;
    QScreen *screen = QGuiApplication::primaryScreen();
    if (screen)
       p = screen->grabWindow(0);//(0, 0, 0, 100, 20);//WinId, X, Y, width, height
    QImage qImage = p.toImage();
    qImage.save("screen.png");

Code for get screen of running app and save in .png format:

    QPixmap p = this->grab();
    QImage qImage = p.toImage();
    qImage.save("screen.png");