QStackedWidget里setCurrentWidget时,如何添加参数?
建立了一个QStackedWidget,里面有若干widget,通过
m_pStackedWidget->addWidget(m_pWidget1);
添加进来,然后根据用户在菜单上的选择,设置当前激活的界面widget。
现在有个问题,就是有几个界面widget,它们什么都是一样的,就是里面显示的数据不同。
比如界面一需要显示语文科目。界面二需要显示数学科目,界面三需要显示英语科目。
但是这几个界面操作,外观等都是一模一样的,就是用户选择语文的话,显示语文的信息,选择数学的话,显示数学的信息等。
请问,在根据用户的选择,设置当前激活的界面widget时,如何可以把用户的选择传递给这个界面widget呢?然后在界面里,就可以根据传递进来的选择,去取和显示不同的内容了?
谢谢。
[解决办法]
可能没大懂你的意思。。我就按照我自己的理解说了
假设语文对应的是m_pWidget1,数学对应的是m_pWidget2,英语对应的是m_pWidget3……
那么当在选择menu中的具体命令时,比如语文,就可以发出一个信号 emit menuCommandChanged(1);
当然前提是,你定义了一个信号SIGNAL为 menuCommandChanged(int)
并且之前进行了声明:
connect(this, SIGNAL(menuCommandChanged(int)), m_pStackedWidget, SLOT(yourOwnFunc(int)));
这个yourOwnFunc 是一个SLOT函数,里面就可以写
m_pStackedWidget->setCurrentIndex(a);//a为当前新的index,由SIGNAL传过来
然后根据a的具体值,设置当前widget里面的具体值。