打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Qt4中的QButtonGroup类使用
userphoto

2015.05.14

关注

转自:http://blog.csdn.net/study_more/article/details/7326515

用惯了qt3的朋友在使用qt4的时候肯定会有些不适应,包括构建界面,一些类的使用上,都有一些区别,总得来说Qt4在编程方式上设计的更加合理了,因为它把界面代码和操作代码完全的“隔离”开了,这样就避免了我们在后期修改界面然后编译的时候会重写操作代码带来的尴尬局面了。qt4除了在界面设置上做了优化,还对一些类做了精简。比如原来Qt3上面的QButtonGroup类,在qt4的designer上面就没有表现出来。只是保留了原来qt3的ButtonGroup。是不是qt4上面就没有QButtonGroup类了呢,当然不是了。在qt4的assistant上面介绍QButtonGroup时说到:“QButtonGroup provides an abstract container into which button widgets can be placed. It does not provide a visual representation of this container (see QGroupBox for a container widget), but instead manages the states of each of the buttons in the group”。其中提到QButtonGroup 提供的是一个放置按键控件的虚拟容器,但它不是个可视的容器。意思就是QButtonGroup 在qt4中变成了一个抽象的类。但是还可以像以前那样管理里面的按键。用法如下:

       首先就是要先声明一个QButtonGroup类的对象:QButtonGroup *buttonGroup;

       接着在初始化或者构造函数里面给这个指针对象分配空间:buttonGroup = new QButtonGroup;

       然后就可以用addButton()函数把想要放置的按键添加进去:

            buttonGroup->addButton( ui.pushButton0, 0 );
            buttonGroup->addButton( ui.pushButton1, 1 );
            buttonGroup->addButton( ui.pushButton2, 2 );
             buttonGroup->addButton( ui.pushButton3, 3 );
            buttonGroup->addButton( ui.pushButton4, 4 );
            buttonGroup->addButton( ui.pushButton5, 5 );
            buttonGroup->addButton( ui.pushButton6, 6 );
           buttonGroup->addButton( ui.pushButton7, 7 );
            buttonGroup->addButton( ui.pushButton8, 8 );
             buttonGroup->addButton( ui.pushButton9, 9 );

     这样就能把想要的按键与它所对应的ID号对应起来了,每一次点击按键时QButtonGroup都会信号buttonClicked (int ID)发射,通过判断ID的槽与其连接,就可以实现按键的判断了。例如:

        connect( buttonGroup, SIGNAL(buttonClicked (int)), this, SLOT(buttonJudge(int)) );//连接信号和槽

最后在槽函数中判断按键就可以了。当然槽函数记得要事先声明。

void IPhone::buttonJudge(int buttonID)
{
    if((modeFlag == defaultMode) || (modeFlag == hangupMode) || (modeFlag == inputMode))
{
   resetFont(1);
   if(modeFlag != inputMode)
    ui.lineEdit->clear();
   modeFlag = inputMode;
   switch (buttonID)
   {
      case 0: ui.lineEdit->insert("0"); break;
      case 1: ui.lineEdit->insert("1"); break;
      case 2: ui.lineEdit->insert("2"); break;
      case 3: ui.lineEdit->insert("3"); break;
      case 4: ui.lineEdit->insert("4"); break;
      case 5: ui.lineEdit->insert("5"); break;
      case 6: ui.lineEdit->insert("6"); break;
      case 7: ui.lineEdit->insert("7"); break;
      case 8: ui.lineEdit->insert("8"); break;
      case 9: ui.lineEdit->insert("9"); break;
    case 10: ui.lineEdit->insert("."); break;
    case 11: ui.lineEdit->insert("#"); break;
    default: break;
   }
}
}

这样就能实现简单按键判别了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Qt----常用的基本组件按钮组(Buttons)常用方法
判断QButtonGroup中哪个QRadioButton被选中
pyqt5中多组单选按钮的布局和使用
用 eric6 与 PyQt5 实现python的极速GUI编程
QT中建立Python GUI应用程序
PyQt5(designer)入门教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服