Мне нужно на виджете выводить текст, который регулярно меняется (либо по сигналам, либо по событиям). Текст вывожу через QPainter следующим образом:
#include <QtGui>
class Widget : public QWidget
{
public:
Widget(QWidget* parent = 0) : QWidget(parent)
{
}
QPainter Painter;
int k;
void paintEvent(QPaintEvent* event)
{
Painter.begin(this);
for (int i = 0; i < 30; i++)
{
k++;
Painter.drawText(0, i*24, 200, 24, Qt::AlignVCenter, QString::number(k)+"Text Text"+QString::number(k)+ "Text Text Text Text ");
}
Painter.end();
}
void timerEvent(QTimerEvent* event)
{
repaint();
}
void keyPressEvent(QKeyEvent* event)
{
repaint();
}
};
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
//w.startTimer(50);
return a.exec();
}
так 50 мс это намного реже, чем приход событий от клавиатуры, ставь 0 и наслаждайся тормозами ну, это моё предположение. почему не использовать QLabel для текстопляски?
Командор, если текст показывается человеку, то нет смысла так часто обновлять, это же не анимация. Раз в 250...500 мс обновление экрана - сойдёт для этой цели. А накапливать нужно в буфере в ОЗУ, отображать же только видимую часть текста. Будет летать
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)