2012-06-02 3 views
0

Это, вероятно, регрессия между Qt4.7 и Qt4.8. Каждый абзац должен быть на отдельной строке, но на 4.8 он сломан. Вы знаете о каком-то обходном пути?регрессия в Qt между 4.7 и 4.8

#!/usr/bin/env python3 

import sys 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 


class CustomLabel(QLabel): 
    def __init__(self, text): 
     super(CustomLabel, self).__init__(text) 
     self._text = text 

    def paintEvent(self, event): 
     brect = QRect() #Qt.rect() 
     painter = QPainter(self) 
     painter.fillRect(brect, Qt.transparent) 
     doc = QTextDocument(self) 
     stylesheet = "*{color: " + painter.pen().color().name() + "; line-height:0.3; margin:0; padding:0;}" 
     doc.setDefaultStyleSheet(stylesheet) 
     doc.setUndoRedoEnabled(False) 
     doc.setHtml(self._text) 
     doc.setUseDesignMetrics(True) 
     doc.drawContents(painter, QRectF()) 
     print(doc.toHtml()) 
     print(doc.toPlainText()) 

app = QApplication(sys.argv) 
label = CustomLabel("<p><font style=\"font-size: 9px;\" color=\"#fffe51\">Text 2</font></p><p><font size=\"9px\" color=\"#aaaaaa\">Text 3</font></p>") 
label.show() 
label.resize(100, 100) 
sys.exit(app.exec_()) 

ответ

3

Вы указываете line-height из 0.3 без указания единицы. Документация says this about length units:

Номер, за которым следует единица измерения. В стандарте CSS рекомендуется, чтобы пользовательские агенты игнорировали объявление с недопустимым значением. В Qt обязательно указывать единицы измерения. Для совместимости с более ранними версиями Qt номера без единиц измерения рассматриваются как пиксели в большинстве контекстов.

В то же время он точно не говорит о том, в каких контекстах он интерпретируется как пиксели, а в нем нет. Вероятно, было изменение, как оно интерпретировалось в контексте line-height.

line-heigthone of the more recently added features, поэтому совместимость с более ранней версией, вероятно, здесь не рассматривается.

(На самом деле, я только что видел, что line-height даже не официально упоминается в качестве ссылки таблицы стилей.)

+0

Спасибо, кажется, что удаление высота строки фиксированной вопрос – Miso

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