QT之QStackedWidget跳转问题

#_#! SOS家人们,问题遇到的现象和发生背景

事情是这样的,刚入职部门一个半月,接到个demo任务,已经差临门一脚了,给我出这么个bug,困扰了几天,属实难受!!

问题相关代码,请勿粘贴截图

page1:

img


page2:

img


另一个ui界面的stackedWidget的page1,暂且称为cafe

img


问题一:这是一个ui界面暂且称为A的stackedWidget的两个子页面page1,page2,我将page1设置为首页。它们之间是通过QPropertyAnimation左右滑动实现的。点任意一个咖啡都可以跳到另一个ui界面暂且称为B的stackedWidget的子页面暂且称为cafe,问题来了!!在page1跳到cafe后点击箭头可以回page1,而在点击page2进入cafe后,点击箭头显示程序异常,导致整个程序结束,被强制关闭。
问题二:在选择糖浓度、咖啡浓度的时候,我是选择用QListWidget做的,怎么把选中的item居中(放在整个ListWidget的正中间)显示呢?

运行结果及报错内容

B对应的cpp文件中,我是这么给按钮添加槽函数的:

void B::on_back_clicked()
{
    A *dlg = new A();
    ui -> stackedWidget -> addWidget(dlg);
    ui -> stackedWidget -> setCurrentWidget(dlg);
}

由page1进来cafe时返回到page1,由page2进来cage时却无法返回到page1或page2,程序强制结束了emm
请各位大咖不吝赐教,感谢感谢

(1)在page1跳到cafe后点击箭头可以回 page1:
如果你没有记录是从哪个 page(1/2) 进入 cafe 页面,而 点击 cafe 箭头可以返回 cafe,表明该箭头点击动作 触发的槽函数是返回 page1页面。
page2 进入cafe 后点击箭头,也是同样触发该槽函数是返回 page1页面。
在该槽函数(返回 page1)中,可能你做了一些处理使用的对象是基于 page1 的,例如初始化或关闭某些控件。page1 -> cafe ->page1 时,没有问题;而在 page2->caft->page1 时就会出错。
一个笨办法就是 把箭头点击动作 触发的槽函数 的内容全部注释掉,然后一句一句 加进来,看看是那一句引起 程序结束强制关闭。

(2)QListWidget 内容居中,最简单的就是在 QTdesigner 属性编辑器中选择 文本居中设置。
也可以用:add_item->setTextAlignment(Qt::AlignHCenter);

(1)gdb或者加打印一步步看。不行多贴点代码大家看看,问题不大。
(2)item滚动到到选中的位置

   ui->listWidget->scrollToItem(ui->listWidget->currentItem());
    //int midCount = 3; //可以根据实际情况自己计算下下
    //QListWidgetItem* itemBottom = ui->listWidget->item(midCount);
    //ui->listWidget->scrollToItem(itemBottom);