
class QRollLabel:public QLabel
{
Q_OBJECT
public:
QRollLabel(QWidget *parent=nullptr):QLabel(parent){
mRollingText="我不是萧海哇111111111111111111111111111";
setText(mRollingText);
resize(300,150);
QFontMetrics fm(this->font()); // 使用当前widget的字体
mTextWidth = fm.horizontalAdvance(mRollingText); // 推荐使用这个
QTimer *t=new QTimer(this);
connect(t,&QTimer::timeout,[=](){
mPosx-=10;
update();
if(mPosx<=-mTextWidth){
mPosx=mTextWidth;
}
});
t->start(100);
}
void paintEvent(QPaintEvent *event){
QPainter painter(this);
// if(isRolling && autoRolling)
{
if(!mRollingText.isEmpty())
{
painter.drawText(QRect(mPosx,0,mTextWidth,30),Qt::AlignLeft,mRollingText);
}
}
// else
// {
// painter.drawText(QRect(0,0,this->width(),30),mAlignment,mRollingText);
// }
}
private:
QString mRollingText;
int mTextWidth=100;
int mPosx=0;
};