Такой код создаёт диалоговое окно, которое не реагирует на нажатие кнопок ни мышь ни клавиатурой:
#include <QApplication>
#include <QTextEdit>
#include <QFontDialog>
int main(int argv, char **args)
{
QApplication app(argv, args);
QTextEdit textEdit;
QFontDialog dlg(&textEdit);
QFontDialog::FontDialogOptions opt;
dlg.setOptions(opt);
dlg.setCurrentFont(QFont("Times", 12));
if (dlg.exec() == QFontDialog::Accepted)
textEdit.append("ok");
else
textEdit.append("false");
textEdit.append(dlg.selectedFont().family() + ", " +
QString::number(dlg.selectedFont().pointSizeF()));
textEdit.show();
return app.exec();
}
Само зависание происходит на вызове метода dlg.exec()
.
При этом ошибка не проявляется в Windows и/или на Qt 5.