我想傳遞一個事件後的對象到另一個表單,在這種情況下,按下按鈕 我不能使用QSignalMapper,因爲它不是一個int,字符串或小部件。 信號和插槽是我唯一的解決方案,但我不知道如何傳遞vTest [i]變量。Qt,傳遞一個自定義變量之間的形式與信號和插槽在一個for循環
std::vector<Test * > vTest;
... fill vTest ...
for(int i = 0; i < vTest.size(); i++)
{
QPushButton * pButton = new QPushButton(vTest[i]->getTestName());
connect(pButton,SIGNAL(clicked(bool)),this,SLOT(slotGoNextPage(???)));
}
這裏是功能插槽slotGoNextPage
void slotGoNextPage(){
goNextPage(); }
...
void goNextPage(){
pForm->var = ?? // value which comes from vTest[i]
stackedWidget_page->setCurrentIndex(1);
}
我應該做的傳遞比一個參數的更多東西的電話嗎?
看起來他需要通過'Test *',而不是向量本身。 – dtech
好的,謝謝。如果是這種情況,您不需要執行typedef,但仍需要使用元編譯器註冊「Test」 - 這是重要的部分:) –
是的,我只是想通過Test *。 謝謝你的建議! – RobertAalto