4

私には簡単な仕事があります。

Qt、PyQt、または PySide QLabel でリッチテキスト (HTML) を右揃えにしたい。ウィジェットのサイズを変更してテキストの長さよりも小さくするまで、QLabel は正常に機能します。その時点で、右側のテキストが途切れます。QLabel はプレーン テキストで適切に機能します。実際、これはここでの質問の単純化されたバージョンです。

以下の PyQt の例では、1 から 10 までの番号をリストしています。ウィジェットのサイズを変更しても、常に「10」という数字を表示したい。プレーン テキストでは機能しますが、リッチテキスト (HTML) では機能しません。これはQtのバグですか?効果を示すために、いくつかのスクリーンショットを追加しました。

ウィジェットを縮小する前に

ウィジェットを縮小した後

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_())
4

1 に答える 1

3

うーん... PySide (Windows ではバージョン 1.1.2) で問題なく動作します。

ただし、リッチ テキストで動作するスタイル シートを使用できます。

labelRT.setStyleSheet("qproperty-alignment: AlignRight;")
于 2013-04-22T14:53:50.413 に答える