Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt4 Qt在4.7和4.8之间的回归_Qt4_Pyqt - Fatal编程技术网

Qt4 Qt在4.7和4.8之间的回归

Qt4 Qt在4.7和4.8之间的回归,qt4,pyqt,Qt4,Pyqt,这可能是Qt4.7和Qt4.8之间的回归。每一段都应该在单独的一行,但在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

这可能是Qt4.7和Qt4.8之间的回归。每一段都应该在单独的一行,但在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_())
#/usr/bin/env蟒蛇3
导入系统
从PyQt4.QtGui导入*
从PyQt4.QtCore导入*
类CustomLabel(QLabel):
定义初始化(self,text):
超级(自定义标签,自我)。\uuuu初始化\uuuu(文本)
self.\u text=文本
def paintEvent(自身,事件):
brect=QRect()#Qt.rect()
油漆工=油漆工(自身)
painter.fillRect(brect,Qt.transparent)
doc=QTextDocument(self)
样式表=“*{color:”+painter.pen().color().name()+“行高:0.3;边距:0;填充:0;}”
doc.setDefaultStyleSheet(样式表)
文件setUndoRedoEnabled(假)
doc.setHtml(self.\u文本)
文件setUseDesignMetrics(真)
文档drawContents(画师,QRectF())
打印(doc.toHtml())
打印(doc.toPlainText())
app=QApplication(sys.argv)
label=CustomLabel(“Text 2

Text 3

”) label.show() 标签。调整大小(100100) sys.exit(app.exec_())
您可以指定
行高度
0.3
,而不提供单位。文件:

后跟测量单位的数字。CSS标准建议用户代理必须忽略具有非法值的声明。在Qt中,必须指定测量单位。为了与早期版本的Qt兼容,在大多数情况下,不带测量单位的数字被视为像素

然而,它并没有确切说明在哪些上下文中它被解释为像素,在哪些上下文中它不是。可能在
行高的上下文中对它的解释发生了变化

行高是,因此与早期版本的兼容性在这里可能不是问题


(实际上,我刚刚看到,
行高
甚至没有在样式表参考中正式提到。)

您指定
行高
0.3
,但没有给出单位。文件:

后跟测量单位的数字。CSS标准建议用户代理必须忽略具有非法值的声明。在Qt中,必须指定测量单位。为了与早期版本的Qt兼容,在大多数情况下,不带测量单位的数字被视为像素

然而,它并没有确切说明在哪些上下文中它被解释为像素,在哪些上下文中它不是。可能在
行高的上下文中对它的解释发生了变化

行高是,因此与早期版本的兼容性在这里可能不是问题


(事实上,我刚刚看到样式表参考中甚至没有正式提到
行高

谢谢,删除行高似乎解决了这个问题,知道吗,删除行高似乎解决了这个问题