使用样式表时,子类化QLabel中的文本换行不起作用

时间:2012-08-29 13:09:17

标签: qt

我已将QLabel子类化如下:

class TestLabel: public QLabel
{
    Q_OBJECT
public:
    TestLabel(QWidget *parent = 0):QLabel(parent){}
    TestLabel(const QString& text, QWidget *parent = 0):QLabel(text, parent){}

protected:
    void paintEvent(QPaintEvent *paint)
     {
         QStyleOption opt;
         opt.init(this);
         QPainter p(this);
         style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
         style()->drawItemText(&p,this->rect(),Qt::AlignLeft, (this->palette()), true, this->text());

     }
};

我按如下方式设置了样式表:

TestLabel {
    font-size: 16px;
    color: rgb(127, 127, 127);
}

我试图使用:tlab->setWordWrap(true);来换行文字 在重写paintEvent之前,正确地包装了文本。但现在,文本不再包装。 documentation表示“文本根据标记对齐和包装。”,但如何传入两个标记(两者都是不同的枚举)?

1 个答案:

答案 0 :(得分:0)

行。我得到了答案。我在看错了班级。我正在看QTextOption :: Word Wrap。

我需要使用 Qt :: Text Word Wrap 作为Qt::AlignLeft | Qt::TextWordWrap