ramlife

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

按键配置

    QPushButton * controller_button_[APP_NUM_OF_CONTROLLER];

    for (int i = 0; i < APP_NUM_OF_CONTROLLER; i++) {
        controller_button_[i] = new QPushButton(this);
    }

    int col_size = (width - APP_COL_SPACE * 1) / APP_NUM_OF_CONTROLLER_ROW;
    int row_size = (height - APP_ROW_SPACE * 2) / (APP_NUM_OF_CONTROLLER / APP_NUM_OF_CONTROLLER_ROW + 1 + 2);
    qDebug() << "col size: " << col_size << ", row size = " << row_size;

    for (int i = 0; i < APP_NUM_OF_CONTROLLER; i++) {
        //controller_button_[i] = new QPushButton(this);
        int row = i / APP_NUM_OF_CONTROLLER_ROW;
        int col = i % APP_NUM_OF_CONTROLLER_ROW;

        controller_button_[i]->move(col * col_size, row * row_size);
        controller_button_[i]->resize(col_size - APP_COL_SPACE, row_size - APP_ROW_SPACE);
        controller_button_[i]->setText(QString::number(i + 1));
    }

按钮处理

使用 qt5 的 connect 写法,编译有问题,使用 qt4 的 connect 写法就没有问题了。 q4 使用 QSignalMapper 的方法,qt5 可以使用 lambda 来实现. 类似 connect(btn, &QPushButton::clicked, this, [=](){func(i);});

    signalMapper_ = new QSignalMapper(this);

    for (int i = 0; i < APP_NUM_OF_CONTROLLER; i++) {
        //connect(controller_button_[i], &QPushButton::clicked, this, &MainWindow::ClickDetail);
        //connect(controller_button_[i], &QPushButton::clicked, signalMapper_, &QSignalMapper::map);
        connect(controller_button_[i], SIGNAL(clicked()), signalMapper_, SLOT(map()));
        signalMapper_->setMapping(controller_button_[i], i);
    }
    //connect(signalMapper_, &QSignalMapper::mapped, this, &MainWindow::ClickDetail);
    connect(signalMapper_, SIGNAL(mapped(int)), this, SLOT(ClickDetail(int)));

参考:

Qt使用数组实现控件批处理
https://blog.csdn.net/nchu_zhangyiqing/article/details/111871693

QT在ui中如何把几个按钮设置成数组的 ?
https://bbs.csdn.net/topics/390024181

Qt 中QButtonGroup 的用法
https://blog.csdn.net/tax10240809163com/article/details/92708983

Qt之QButtonGroup简单使用
https://blog.csdn.net/u013782830/article/details/53392072

Qt实现动态(个数不确定)的一组按钮
https://blog.csdn.net/qq_37441588/article/details/118681941

Qt简单的按钮槽函数传递参数方法
https://blog.csdn.net/nchu_zhangyiqing/article/details/111871484

Qt使用connect函数时向slot传递参数
https://blog.csdn.net/imred/article/details/72940365

QSignalMapper的使用和使用场景
https://www.cnblogs.com/tudou/p/11586454.html

posted on 2023-01-17 11:03  ramlife  阅读(248)  评论(0编辑  收藏  举报