首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于QButtongroup有关问题

2013-01-04 
关于QButtongroup问题我想做的是一个数字键盘,点击一下数字,lineedit就会显示出来,于是我用了QButtongroup

关于QButtongroup问题
我想做的是一个数字键盘,点击一下数字,lineedit就会显示出来,于是我用了QButtongroup,因为它能给每个按钮设置一个数字id,但是我一点击1数字键,lineedit就出现1,但是我再点击2的时候,1没了,2就出来,我想问一问如何解决这个方法。



顺便问一下,因为这个数字键盘就像手机一样,我想它同时具备输入字母的功能,请问怎样才能实现。
[解决办法]
你的lineedit是怎么来设置数字的呢?setText()么? setText()是会把原来的覆盖的, 用append();就不会把原来的覆盖了。

如果想要字母的话,这样按键就非常多了,所以还是通过给按钮添加事件处理器来实现会比较好。
当然你也可以把所有的按钮绑定到同一个槽函数,然后再槽函数里面,通过这样来实现:
func()
{
    QString str = QObject::sender()->objectName();
    if(str.compare("A") == 0)
    {
        lienedit->append("A");
    }else if(str.compare("B") == 0)
    {
        lienedit->append("B");
    }
}
这个的缺点就是要写非常多的else if。

或者可以直接这样
func()
{
    QString str = QObject::sender()->objectName();
    lienedit->append(str);
}
这个的缺点就是不能使用数字了,因为书不能给按钮取名为数字的。

终极方法:
结合上面两种方法,数字用第一种方法,把数字按钮绑定到第一个槽函数,字母用第二种方法,把字母按钮绑定到第一个槽函数,这样就轻松搞定了。

这里就可以不需要用事件处理器了,个人感觉事件处理器用不来。


热点排行