QMessageBox: не удается отобразить текст внутри поля (с использованием С++)

долго застряли с простой (?) задачей по созданию окна сообщений. Фактическая функциональность работает отлично, кнопки запускают нужные мне действия, но почему-то информативный текст в поле невидим. Вот код:

QMessageBox* msgBox;
    msgBox = new QMessageBox();
    msgBox->setWindowTitle("Open settings from file");
    msgBox->setText("Do you want to save your current settings to file first?");
    msgBox->setStandardButtons(QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
    msgBox->setDefaultButton(QMessageBox::No);      
    msgBox->exec();

Вот результат:

MsgBox с невидимым текстом

Как видите, отображается заголовок, но не текст. Я должен добавить, что я пробовал все виды решений, например, изменение размера окна, изменение цвета шрифта (ничего не происходит), цвета фона (цвет фона все еще остается) и использование других текстовых параметров, таких как setInformativeText, setDetailedText с тем же результатом.

Кто-нибудь знает, как разгадать эту загадку?


person Erik Söderby    schedule 01.02.2017    source источник
comment
Поскольку вы задаете вопрос в своем окне сообщения, почему бы просто не использовать функцию-член static question для отображения окна сообщения? Нет необходимости создавать свой собственный экземпляр.   -  person Some programmer dude    schedule 01.02.2017
comment
Я тоже пробовал это. Тот же результат - текст не отображается...   -  person Erik Söderby    schedule 01.02.2017


Ответы (1)


Недавно у меня возникла аналогичная проблема, оказалось, что мой текст setText был того же цвета, что и мой фон. Я изменил цвет фона в своей таблице стилей, и появился мой setText! В моей таблице стилей родительского виджета:

QDialogBox{
background-color: darkgray;
}

Это не окончательное решение, но я надеюсь, что это может помочь кому-то в конечном итоге.

person Sphics    schedule 13.12.2017
comment
Это не квалифицированный ответ, он должен быть в комментариях. - person Mathews Sunny; 13.12.2017