风中飘零的bug 2016-03-22 05:57 采纳率: 90.9%
浏览 1724
已采纳

QT怎么快速实现走动棋子

widget的cpp文件内容
static int m=1,n=1;
    for(int i=0;i<=9;i++){
        for(int j=0;j<=9;j++){
            pbDifineGroup[j+1][i+1] = pbDifine=new   QPushButton(this);
            pbDifine->setGeometry(lbegin+sline*i,60+sline*j,sline,sline);//连续生成按钮
            connect(pbDifineGroup[j+1][i+1],SIGNAL(clicked()),this,SLOT(slotMove(m,n)));
            pbDifine->setFlat(true);//设置按钮透明
            n++;
        }
        m++;
    }
有疑惑的槽函数内容
void Widget::slotMove(int,int)
{
    pbMoveBlue1->setGeometry(pbDifineGroup[m][n]->geometry());//pbMoveBlue1是其中一颗棋子
}
写出来的界面就是图片那样
然后发现在链接信号和槽的时候槽函数好像并不会被调用,只是建立了一个关系,(把槽函数里面的m,n换成了常数发现棋子可以移动),但是用m,n的时候不管点击哪一个格子棋子都没有反应了,本来想用多个信号连接一个槽函数但是实现不同的槽机制的,但是找不到办法,求大神解救。图片

  • 写回答

3条回答 默认 最新

  • 小灸舞 2016-03-22 06:30
    关注

    Incompatible sender/receiver arguments
    你的连接connect(pbDifineGroup[j+1][i+1],SIGNAL(clicked()),this,SLOT(slotMove(m,n)));
    虽然能过编译,但是参数不匹配的话connect会失败
    楼主可以qDebug() << connect(pbDifineGroup[j+1][i+1],SIGNAL(clicked()),this,SLOT(slotMove(m,n)));
    输出的必然是false

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。