我以爲我開始明白這一點,但似乎沒有。無法連接到家長插槽
我正在嘗試將堆疊的小部件連接在一起,以便孩子可以向父母發送消息以告知其更改視圖。 QStackedWidget是主窗口的子項,它的頁面是我自己創建的促銷項目。我認爲這是正確的做法嗎?
左右的時間內一個孩子形成我試過如下:
// Set up a mapping between the buttons and the pages
QSignalMapper *mapper = new QSignalMapper(this);
mapper->setMapping(ui->automatedButton, 1); // Value of the index
connect(ui->automatedButton, SIGNAL(clicked()), mapper, SLOT(map()));
connect(mapper, SIGNAL(mapped(int)), ((QStackedWidget*)parentWidget()), SLOT(setCurrentIndex(int)));
但是,這似乎並沒有工作。我點擊按鈕,沒有任何變化。但是,如果我這樣做:
void MySelectionForm::on_automatedButton_clicked()
{
((QStackedWidget*)parentWidget())->setCurrentIndex(1);
}
我以爲和我以前做的一樣嗎?
QObject::connect: Cannot connect QSignalMapper::mapped(int) to (null)::setCurrentIndex(int)
啊,這是非常有用的。我將表單從設計器中移出,並在MainWindow構造函數中手動添加它們,將父項設置爲堆疊容器,現在按預期方式工作。可能還有另外一種方法可以通過設計師來完成,但現在可以直到我解決問題,所以謝謝! – Firedragon