当时为新写的派生类创建了一个鼠标单击事件,希望在单击自定义控件时可以将主界面里的堆栈窗体设置在正确的页面。
可以在该派生类里定义一个空的堆栈窗体指针,并在主界面里将目标堆栈窗体指针传给它。在派生类里定义函数,判断指针不为空便调用目标堆栈窗体。
//派生类Animationbutton函数
void Animationbutton::setStackedWidgets(QStackedWidget *stackedWidget,int i)
{
sWidget=stackedWidget;
curi=i;
}
void Animationbutton::setCurrentWidget()
{
if(sWidget)
{
sWidget->setCurrentIndex(curi);
}
}
void Animationbutton::mouseClicked()
{
setCurrentWidget();
}
//主窗体传递目标指针
ui->autotest_btn->setStackedWidgets(ui->stackedWidget,0);
ui->mantest_btn->setStackedWidgets(ui->stackedWidget,1);
ui->parset_btn->setStackedWidgets(ui->stackedWidget,2);
ui->resultshow_btn->setStackedWidgets(ui->stackedWidget,3);