这是一个消消乐小游戏,游戏中的方块基于QPushButton实现。
所有的方块按钮的地址都储存在一个vector数组中,在按钮类中定义了序号变量,即该按钮在数组中的位置,和不同方块的标志变量。还定义了上一点击序号和上一标志序号静态变量。在构造函数里定义了点击效果槽函数,点击按钮时若和上一点标志不同,则两个静态变量被赋值为此按钮的值。标志相同且序号不同,则delete两个按钮。先上一下图,大家只看圈起来的部分就可以了。问题接下来再提。
当点击两个按钮时,如果是按数组下标正序点击,则两个按钮都可以delete,反之若先点击数组下标大的按钮再点击数组下标小的按钮,那么只会delete后点击的按钮,即数组下标小的。
如图,假如按钮1的下标为10,按钮2的为11,先点击1再点击2,两个按钮都可以delete,反之则只delete按钮1。我也试了把delete换成槽函数close和hide,但结果差不多,正序点击没问题,逆序的话就程序闪退。
请问这是什么原因?