Окно предупреждающего сообщения


Для отображения окна предупреждающего сообщения вызывается статический метод warning() класса QMessageBox.

Вывод окна предупреждающего сообщения может выглядеть так:


int n = QMessageBox::warning(0,
                             "Warning", 
                             "The text in the file has changed," 
                             "\n Do you want to save the changes?", 
                             "Yes", 
                             "No", 
                             QString(), 
                             0, 
                             1 
                            ); 
if(!n) { 
    // Saving the changes! 
}

Здесь, в метод warning() первым параметром передается нулевой указатель, второй параметр — это строка, задающая надпись заголовка окна. Третьим параметром передается текст сообщения. Четвертый параметр задает надпись первой кнопки, пятый параметр — надпись второй кнопки, шестой — надпись третьей кнопки (в нашем примере этот параметр равен нулевой строке, так как используется конструктор по умолчанию класса QString, а это значит, что на третьей позиции кнопка показана не будет). Седьмой параметр делает кнопку, с переданным индексом, кнопкой по умолчанию (в нашем случае этот параметр равен нулю, что соответствует кнопке Yes (Да)). Восьмой параметр сопоставляет кнопку, соответствующую переданному индексу, с клавишей <Escape>. В нашем случае этот параметр равен единице и это соответствует кнопке No (Нет), то есть нажатие клавиши <Escape> будет расцениваться как нажатие на эту кнопку. Метод warning() возвращает индекс нажатой кнопки, который, в нашем случае, проверяется в условном операторе if, и равенство этой переменной нулю соответствует нажатию кнопки Yes (Да).

{рис}

Читать далее: Окно критического сообщения в Qt