事情是这样的,刚入职部门一个半月,接到个demo任务,已经差临门一脚了,给我出这么个bug,困扰了几天,属实难受!!
page1:
在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);