我将 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之前,文本被正确包装。但是现在,文本不再被换行。文档说“文本根据标志对齐和包装”。,但是我如何传入两个标志(它们都是不同的枚举)?