• 4034阅读
  • 5回复

[提问]qlineedit控件settext内存问题 [复制链接]

上一主题 下一主题
离线capdi
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-07
在程序中使用了几个qlineedit控件,然后在定时器中用settext函数不断刷新它们的内容,但是在任务管理器里发现发现这个程序的内存占用在不断增加,经过试验,发现注释掉settext函数后,就没有这个问题了。请问,这是怎么回事呢?又怎样才能解决这个问题呢?
离线dbzhang800

只看该作者 1楼 发表于: 2013-08-07
不妨贴出你用来测试这个问题的完整的例子。以及你的系统版本及所用Qt的版本。
离线capdi

只看该作者 2楼 发表于: 2013-08-07
我使用的系统是Windows 7,Qt版本是5.0.2
离线capdi

只看该作者 3楼 发表于: 2013-08-07
刷新代码如下:
QMapIterator<Numeric *, Channel *> i(d->allNumerics);        while (i.hasNext()) {            i.next();
            Numeric *numeric = i.key();            Odae::Channel *channel = i.value();
            numeric->setValue(channel->value());                    }其中Numeric是继承qlineedit类,setValue实现如下:bool Numeric::setValue(double val){    m_value = val;    setText(textFromValue(m_value));    return true;}QString Numeric::textFromValue(double value) const{    QString s = QString::null;    if (m_prec <= 14)        s = QString::number(value, m_format, m_prec);    else        s = QString::number(value, m_format, 6);
    return m_prefix + s + m_suffix;}
离线XChinux

只看该作者 4楼 发表于: 2013-08-07
textFromValue()这个函数耗时了,优化一下。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线capdi

只看该作者 5楼 发表于: 2013-08-07
怎么优化,请具体说一下,谢谢!
现在最大的问题是这个程序的内存占用在不断增加,我怕运行时间长了会崩溃。
快速回复
限100 字节
 
上一个 下一个