upp 2022-04-11 21:44 采纳率: 100%
浏览 21
已结题

qt中,翻金币小案例,我想封装一个函数(获胜的图片弹出的特效),然后在类内调用,显示不出来

封装的函数如下:


//胜利图片显示
void PlayScene::showAll()
{
    qDebug()<<"有没有呀";
    QLabel *winlabel=new QLabel;
    QPixmap pix;
    pix.load(":/res/LevelCompletedDialogBg.png");
    winlabel->setGeometry(0,0,pix.width(),pix.height());
    winlabel->setPixmap(pix);
    winlabel->setParent(this);
    winlabel->move((this->width()-pix.width())*0.5, -pix.height());

    //将胜利的图片移动下来
    QPropertyAnimation *animation=new QPropertyAnimation(winlabel,"geometry");
    //设置时间的间隔
    animation->setDuration(1000);
    //设置开始位置
    animation->setStartValue(QRect(winlabel->x(),winlabel->y(),winlabel->width(),winlabel->height()));
    //设置结束位置
    animation->setEndValue(QRect(winlabel->x(),winlabel->y()+114,winlabel->width(),winlabel->height()));
    //设置缓和曲线
    animation->setEasingCurve(QEasingCurve::OutBounce);
    //开始
    animation->start();
    qDebug()<<"you";
}

当我将这个函数放到构造函数中,可以弹出,但是他一开始就直接弹出来了,我想放到,金币全部翻到的封装函数下面,如下

PlayScene::PlayScene(int levelNum)
{
this->showAll();
}

这是还有银币的时候直接弹出来了,相当于构造函数直接初始化了

img


然后我放到判断胜利的函数下边:

void PlayScene::transCoin(int (*gameArray)[4],MyCoin *coinBtn[4][4], MyCoin *const coin)

{
        if(this->allNum==16)
        {
            qDebug()<<"胜利了";
          this->showAll();
            //将所有的按钮
            for(int i=-0;i<4;i++)
            {
                for(int j=0;j<4;j++)
                {
                    //this->coinBtn[i][j]->disconnect();
                    this->coinBtn[i][j]->isWin=true;
                }
            }

        }

}

然后怎么都不弹出来那个图片,我怀疑是下面这句代码的问题,但是我不知道咋改!

winlabel->setParent(this);

  • 写回答

1条回答 默认 最新

  • bostonAlen 2022-04-12 17:05
    关注

    winlabel->setParent(this);这句不要
    加上winlabel->show();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 yolov8边框坐标
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂