2012-03-31 8 views
11

У меня есть действие, которое создает QMessageBox. В этом диалоговом окне я хочу напечатать список, содержащий несколько элементов. У меня есть следующий код:HTML в QMessageBox

void MainWindow::onAboutActivated(){ 
qDebug() << "about"; 
QMessageBox::about(this, 
        "Autor: \n" 
        "\n" 
        "Umoznuje:" 
        "<ul>" 
        "<li> Item 1 </li>" 
        "<li> Item 2 </li>" 
        "<li> Item 3 </li>" 
        "</ul>"); 

Однако это не печатает список, а текст с тегами html. Как распечатать список? Любые идеи?

ответ

20

Не смешивать новые строки \n с html-тегами. Измените новые строки на <br>, после чего текстовый формат будет автоматически распознан.

+1

Вот и все, спасибо – Jan

3

Кажется, вы устанавливаете заголовок диалога вместо содержимого диалогового окна. Это работает для меня:

void MainWindow::onAboutActivated(){ 
qDebug() << "about"; 
QMessageBox::about(this, "Dialog Title", 
        "Autor: \n" 
        "\n" 
        "Umoznuje:" 
        "<ul>" 
        "<li> Item 1 </li>" 
        "<li> Item 2 </li>" 
        "<li> Item 3 </li>" 
        "</ul>"); 

формат текста по умолчанию для QMessageBox является Qt :: AutoText который должен обнаружить HTML-теги внутри строки, так что вы должны быть в состоянии продолжать использовать статический метод about без необходимости создания экземпляров Объект QMessageBox.

+0

Я думаю, что это была просто опечатка, которую ОП забыл включить в заголовок диалога. Код, который OP опубликовал (без заголовка), не будет компилироваться, но OP говорит, что он печатает теги HTML и не упоминает о компиляции проблем. Ваш код компилируется отлично, но не решает проблему, которая заключается в том, что диалоговое окно печатает HTML-теги именно так, вместо того, чтобы интерпретировать HTML как список. Другой ответ решает эту проблему. –

 Смежные вопросы

  • Нет связанных вопросов^_^