风中飘零的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 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建