2013-12-08 4 views
2

Использование QtGui.QMessageBox для отображения сообщений, предупреждений и ошибок.New Line Character и PyQt

Кажется, что QMessageBox не хочет работать с «\ п» новой строки при использовании HTML-теги

message = "<a href = http://www.google.com> GOOGLE</a> This a line number one.\n This a line number two. \n And this is a line number three." 

все, что отображается в виде одной длинной строки при отображении в QMessageBox ,

Заранее благодарен!

+0

Укажите, пожалуйста, код, в котором вы хотите позвонить в это поле. –

+0

@sputnix, заменить \ n на
qurban

+1

«не хочет работать с символом' \ n' новой строки при использовании с тегами html ». Вы когда-нибудь пытались использовать новую строку внутри HTML-текста? Потому что это * всегда * игнорируется. Если у вас есть подобные сомнения, вы должны прочитать несколько руководств по HTML. – Bakuriu

ответ

6

Поведение, которое вы видите, полностью соответствует ожидаемому. Это часть спецификации HTML 4, которая, помимо внутренних тегов PRE, последовательностей белых символов должна всегда сворачиваться в одно пространство. Чтобы процитировать relevant part of the spec:

Обратите внимание, что последовательность белых пробелов между словами в документе источником может привести к совершенно иной интервал оказывается межсловное (за исключением случая PRE элемента). В частности, агенты пользователя должны сбрасывать входные пробелы при создании выходного пространства между словами.

Итак, если вам нужно вставить разрывы строк, сделайте это явно с помощью тега <br>.

PS:

Также следует отметить, что текст в Qt виджеты поддерживают только ограниченный набор HTML-теги, атрибуты и свойства CSS. Подробные сведения см. В документе Supported HTML Subset в документах Qt.