Аналог MessageBox в Qt

👁 119 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Чтобы использовать всплывающее окно 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

👁 87 просмотров
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

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");