起因:嵌入式里
QLabel显示一大堆中文时,效率相当的差。
由于中文的编码和解码的方式特殊,在
显示中文文字时,需要一个个的去检索
字体,造成CPU 负荷相当的重,致使绘制效率也变低。因此本人(Venus)采用了逐字
显示的方法来提高效率,而且
显示上也很特别,有点像事实播报一样,具体实现代码如下:
[pre]#include <QtCore>
#include <QtGui>
class Test: public QLabel
{
Q_OBJECT
public:
Test()
:m_inc(0)
{
connect(&m_time, SIGNAL(timeout()), SLOT(changed()));
m_time.start(30);
QLabel::setWordWrap(true);
setWordWrap(true);
}
void setText ( const char *text )
{
m_text = m_text.fromLocal8Bit(text);
}
private slots:
void changed()
{
m_inc ++;
if (m_inc >= m_text.size())
m_time.stop();
else
QLabel::setText(m_text.left(m_inc));
}
private:
int m_inc;
QTimer m_time;
QString m_text;
};
标签: QLabel,
Qt,
显示 本文链接: Qt QLabel 逐字显示的方法 版权所有: Venus, 转载请注明来源Venus并保留链接地址!
相关文章