Qt5 信号重载

本篇介绍 Qt5 信号的重载

    radioGroup = new QButtonGroup(this);

    radioGroup->addButton(ui->radioButton1);
    radioGroup->addButton(ui->radioButton2);
    radioGroup->setExclusive(true);

    //old style
    connect(radioGroup,SIGNAL(buttonToggled(int,bool)),this,SLOT(radioGroupToggled()));

    //error
    //    connect(radioGroup,
    //            &QButtonGroup::buttonToggled,
    //            this,
    //            &MainWindow::radioGroupToggled
    //            );

    //Qt help
    //    connect(radioGroup,
    //            QOverload<QAbstractButton *, bool>::of(&QButtonGroup::buttonToggled),
    //            [=](QAbstractButton *button, bool checked){
    //        qDebug() << "button is: " << button << " is checked: " << checked;
    //    });

    //fix1
    //    connect(radioGroup,
    //            QOverload<QAbstractButton *, bool>::of(&QButtonGroup::buttonToggled),
    //            this,
    //            &MainWindow::radioGroupToggled
    //            );

延申阅读

  • Qt5中使用lambda表达式
    https://www.cnblogs.com/yuankaituo/p/5135750.html
  • https://www.devbean.net/2012/05/cpp11-lambda/

Qt 批量操作 UI 控件

目的

Qt的UI界面编程时,会遇到这种情况,界面上分布大量相同的控件,如LineEdit_1、LineEdit_2、LineEdit_3 等一系列控件。对这么多控件进行操作,无疑采用遍历的方式是最好的办法,可是往往这些控件都是在UI设计器里手动添加的,所以并不能立刻得到可批量操作的地址。下面有3种方法可以供操作。

Continue reading