• 8000阅读
  • 2回复

Qt QLabel 逐字显示的方法 [复制链接]

上一主题 下一主题
离线zjhcool
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-17
起因:嵌入式里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并保留链接地址!

相关文章

我的博客地址: http://newfaction.net
离线downstairs

只看该作者 1楼 发表于: 2011-02-23
偶是菜鸟,纯粹围观的。。顶
喜爱编程的猫头鹰
离线zjhcool
只看该作者 2楼 发表于: 2011-03-15
呵呵~
我的博客地址: http://newfaction.net
快速回复
限100 字节
 
上一个 下一个