QT中批量操作QPushButton,创建、获取、连接槽函数。

1 篇文章 0 订阅
1 篇文章 0 订阅

QT中批量操作QPushButton,创建、获取、连接槽函数。

先看一下最终效果是不是你想要的。
在这里插入图片描述
这里批量创建了128个按键,连接到同一个函数中,用索引的方式获取按键动作。每一个按键可以有按下的效果。
看代码,都有比较详细的注解。

创建部分:

    //创建DO按键128个 一行8个,一共16行 8*16=128
    for (int i=0;i<16;i++)//DO
    {
        for(int j=0;j<8;j++)
        {
            //按键名称是 通道1~128,使用QString::asprintf  ui->frame是建立好的一个容器用来确认在窗口中的位置
            QPushButton *bt = new QPushButton(QString::asprintf("通道%d", i*8+j+1), ui->frame);//
            bt->setGeometry(100+j*100+j*100, i*10+i*40, 100, 40); //4个参数是(X坐标,Y坐标,按键的宽度,按键的高度)
            connect(bt,&QPushButton::clicked,[=](){BT_128(i*8+j);});//连接到一个函数,函数的参数就是“按键索引”
        }
    }
    int PushButton_number = ui->frame->children().count();//获取创建了多少个按键
    qDebug()<<"PushButton_number"<<PushButton_number;//打印出来

槽函数的部分

void Data_Test_Calibration::BT_128(int N)
{
	//static bool DO_Table[128];
    //一个记录状态的数组
    DO_Table[N] = !DO_Table[N];

    //获取所有的按键
    QPushButton *bt = (QPushButton *)(ui->frame->children().at(N));
    qDebug()<<bt->text();//打印按下的按键名称
    if(DO_Table[N])//按键动态变化
        bt->setStyleSheet("QPushButton{background-color:green;color:white;}");
    else
        bt->setStyleSheet("");
}
  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值