• 5118阅读
  • 3回复

[提问]为什么Qlineedit中内容变化后,读取的值还是以前的值 [复制链接]

上一主题 下一主题
离线ice_wx
 

只看楼主 倒序阅读 楼主  发表于: 2015-09-01
我在一个子窗口中设置了两个Qlineedit,希望获取用户输入的两个值,代码如下:

    QLineEdit *AvgEdit = new QLineEdit;
        QLineEdit *VarEdit = new QLineEdit;
        AvgEdit->setText("1000");
    VarEdit->setText("10000");
    QString Qavg = AvgEdit->text();
    QString Qvar = VarEdit->text();
    avg = Qavg.toInt();
    var = Qvar.toInt();
但是当我改变Qlineedit框中的内容时,通过调试发现,avg 和 var的值一直是默认的1000和10000,
求救啊,菜鸟一枚,大神来拯救我!
离线dbzhang800

只看该作者 1楼 发表于: 2015-09-01
你确定你这两个变量你在你改变QLineEdit之后你重新赋值的?
离线ice_wx

只看该作者 2楼 发表于: 2015-09-01
回 dbzhang800 的帖子
dbzhang800:你确定你这两个变量你在你改变QLineEdit之后你重新赋值的? (2015-09-01 13:49) 

有没有重新赋值我不大清楚。。我一直以为Qlineedit的text()函数是随着编辑框内的改变不停触发的。
如果说QLineEdit的改变在上述代码之后,那我怎么获取改变的值呢?
大概讲一下我的程序整体思路:打开一个子窗口,子窗口上有两个QLineEdit和一个QpushBotton控件,用户输入两个数,按button后,我要将这两个数传给两个全局变量中,那这个赋值到底该怎么实现呢?
多谢版主大神,跪谢!
离线ice_wx

只看该作者 3楼 发表于: 2015-09-01
回 dbzhang800 的帖子
dbzhang800:你确定你这两个变量你在你改变QLineEdit之后你重新赋值的? (2015-09-01 13:49) 

刚刚试成功一个方法。
就是在button的槽函数里去赋值,因为这个时候肯定在QLineEdit改变之后。
但这里要注意的是要将AvgEdit和varEdit两个控件不能在子窗口中定义,而要在主窗口中定义,否则按下button后不能调用、AvgEdit->text()函数(因为AvgEdit是局部变量),在主窗口中定义可以成为全局变量。
之前没有想到这个方法,是因为总觉得子窗口中的部件必须和子窗口是同生命周期的。所以我觉得这个解决办法不是一个好办法,因为子窗口关闭后,上面控件的资源并没有释放。
版主大神有没有更好的方法啊。。因为刚开始学习啰嗦了点。。
快速回复
限100 字节
 
上一个 下一个