Добрый времени суток.
Создаю виджет в правом верхнем углу экрана, в котором выводится статистика сервера(по таймеру раз в 5-10 секунд), а над статистикой бегущую строку(по таймеру) с новостью.
Проблема в том, что, когда таймер обновляет статистику (три QLabel), сбрасывается позиция бегущей строки, в результате строка не добегает до конца, обнуляется позиция, и она начинает бежать заново.
делал так:
C++ (Qt)
StatusWidget::StatusWidget(QWidget *parent)
{
news1 = new QLabel("test news in desctop widget"); // текст с бегущей строкой
// Эти три QLabel одбновляются по первому таймеру раз в 5-10 секунд
label1= new QLabel("<b>Tirion x2</b>");
online1= new QLabel(tr("<b>Online:</b> -"));
uptime1= new QLabel(tr("<b>Uptime:</b> -"));
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(news1);
layout->addWidget(label1);
layout->addWidget(online1);
layout->addWidget(uptime1);
setLayout(layout);
gradient.setColorAt(0, QColor(247, 247, 247, 255));
gradient.setColorAt(1, QColor(187, 187, 187, 255));
gradient.setCoordinateMode(QGradient::ObjectBoundingMode);
resize(120, 40);
this->move(qApp->desktop()->width()-this->width(),1);
// Первый таймер, по которому обновляется статистика сервера
// Вот с ним то и проблема - при таймауте он обнуляет позицию бегущей строки
emit updateServer();
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(updateServer()));
timer->start((m_settings->value("UpdateTime",10).toInt())*1000);
// Второй таймер, отвечающий за бегущую строку.
timer1 = new QTimer(this);
connect(timer1, SIGNAL(timeout()), this, SLOT(scrollNews()));
timer1->start(50);
}
// Слот перемещения строки влево
void StatusWidget::scrollNews(){
news1->move(news1->x()-5,news1->y());
}
Подскажите где проблема