• 14476阅读
  • 5回复

[提问]QT connect信号传递参数问题 [复制链接]

上一主题 下一主题
离线西西大怪
 
只看楼主 倒序阅读 楼主  发表于: 2011-03-02
<这个问题在群里问过了,也讨论了,但是结果不很理想,发个帖子,长久征集方法!>

如下图,我要实现在6米的LineEdit里输入根数,在后面的LineEdit里自动计算出米数(根数*6),

同理 ,我要实现在5米的LineEdit里输入根数,在后面的LineEdit里自动计算出米数(根数*5),

.........

怎么做?

<可以自己写一个slot和LineEdit的textChanged信号连接,要实现同步,要传递一个6或者5>

<方法不限,要简单>

就好像gtk里直接
gtk里面很简单
g_signal_connect(G_OBJECT(Edit_6), "textchanged",G_CALLBACK(test_fun),6); //6米的时候
g_signal_connect(G_OBJECT(Edit_5), "textchanged",G_CALLBACK(test_fun),5); //5米的时候
g_signal_connect(G_OBJECT(Edit_4_5), "textchanged",G_CALLBACK(test_fun),4.5); //4.5米的时候
g_signal_connect(G_OBJECT(Edit_4), "textchanged",G_CALLBACK(test_fun),4);//4米的时候
.......

显然下面的是不对的  ==
connect(Edit_6,SIGNAL(textChanged(QString)),this,SLOT(SetText(QString,6)));
connect(Edit_5,SIGNAL(textChanged(QString)),this,SLOT(SetText(QString,5)));
.....
[ 此帖被西西大怪在2011-03-02 17:17重新编辑 ]
离线downstairs

只看该作者 1楼 发表于: 2011-03-02
lineedit里加入ontextchange不就OK了么。。。
喜爱编程的猫头鹰
离线roywillow

只看该作者 2楼 发表于: 2011-03-02
可以自己给每个lineEdit都写一个slot,以QString为参数,里面对对应的文本框进行修改,并把这个slot跟输入文本框的textChange神马的信号连接起来就好了吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线西西大怪
只看该作者 3楼 发表于: 2011-03-03
回 1楼(downstairs) 的帖子
您好!怎加ontextchange???
是要重载LineEdit类,然后重写个signal吗?
可是怎么传递那个常数呢?那个ontextchanged怎么写?
离线西西大怪
只看该作者 4楼 发表于: 2011-03-03
回 2楼(roywillow) 的帖子
这是当然可以的,不过每个都写个slot会很麻烦,我的截图是一部分,其实还有好多这种框,如果都写的话,代码就太难看了~~
离线西西大怪
只看该作者 5楼 发表于: 2011-03-06
我天天来看帖子,咋没人回了呢????版主呢?
快速回复
限100 字节
 
上一个 下一个