如何在Qt/PyQt/PySide QLabel中右对齐富文本(HTML)?

如何在Qt/PyQt/PySide QLabel中右对齐富文本(HTML)?,qt,pyqt,alignment,richtext,qlabel,Qt,Pyqt,Alignment,Richtext,Qlabel,我有一个简单的任务 我想右对齐Qt、PyQt或PySide QLabel中的richtext(HTML)。QLabel工作正常,直到我调整小部件的大小使其小于文本长度。此时,右侧的文本将被截断。QLabel可以正常使用纯文本。事实上,这只是问题的简化版本 在下面的PyQt示例中,我列出了数字1到10。即使在调整小部件的大小时,我也希望始终看到数字“十”。它适用于纯文本,但不适用于richtext(HTML)。这是Qt中的一个bug吗?我添加了几个屏幕截图来显示效果 from PyQt4 impo

我有一个简单的任务

我想右对齐Qt、PyQt或PySide QLabel中的richtext(HTML)。QLabel工作正常,直到我调整小部件的大小使其小于文本长度。此时,右侧的文本将被截断。QLabel可以正常使用纯文本。事实上,这只是问题的简化版本

在下面的PyQt示例中,我列出了数字1到10。即使在调整小部件的大小时,我也希望始终看到数字“十”。它适用于纯文本,但不适用于richtext(HTML)。这是Qt中的一个bug吗?我添加了几个屏幕截图来显示效果

from PyQt4 import QtGui, QtCore

import sys

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    mw = QtGui.QWidget()

    labelPT = QtGui.QLabel()
    labelPT.setText('one two three four five six seven eight nine ten')
    labelPT.setAlignment(QtCore.Qt.AlignRight)

    labelRT = QtGui.QLabel()
    labelRT.setText('one two three four <b>five</b> six seven eight nine ten')
    labelRT.setAlignment(QtCore.Qt.AlignRight)

    vbox = QtGui.QVBoxLayout()
    vbox.addWidget(labelPT)
    vbox.addWidget(labelRT)

    mw.setLayout(vbox)
    mw.setMinimumWidth(30)
    mw.show()

    sys.exit(app.exec_())

从PyQt4导入QtGui,QtCore
导入系统
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app=QtGui.QApplication(sys.argv)
mw=QtGui.QWidget()
labelPT=QtGui.QLabel()
标签setText(‘一二三四五六七八九十’)
labelPT.setAlignment(QtCore.Qt.AlignRight)
labelRT=QtGui.QLabel()
labelRT.setText(‘一二三四五六七八九十’)
labelRT.setAlignment(QtCore.Qt.AlignRight)
vbox=QtGui.QVBoxLayout()
vbox.addWidget(labelPT)
vbox.addWidget(labelRT)
mw.setLayout(vbox)
mw.设置最小宽度(30)
mw.show()
sys.exit(app.exec_())

哼。。。它可以与PySide(Windows上的1.1.2版)配合使用

但是,您可以使用应与富文本一起使用的样式表:

labelRT.setStyleSheet("qproperty-alignment: AlignRight;")

我刚刚用PySide 1.1.1进行了尝试,但没有成功。我还尝试了您对PyQt和Pyside的样式表建议。它也不起作用。当您将小部件缩小到比文本小的尺寸时,是否确定对齐对您有效?对我来说,richtext(html)小部件开始向右剪切。@Lozzer也许你应该在另一台电脑上试试computer@DanBarzilay,我刚刚在一个完全干净的操作系统上重新安装了最新的Python(2.7.4)和PyQt(4.10.1)。效果与我上面描述的完全相同。将标签的大小调整为小于文本宽度时,Richtext标签的右侧将被剪切,而非Richtext标签的左侧将被剪切。上面的代码对您正确吗?@Lozzer我也有这个问题,我95%确定这是PyQt错误。@DanBarzilay。以一种奇怪的方式,很高兴知道。我担心只有我一个人。我会写一份错误报告。但是,实际上,我认为这个bug甚至可能在Qt(而不是PyQt)中。