0
我已經看過各種Qt討論這個錯誤「沒有匹配的函數調用」,我仍然看不到在這種情況下有什麼不同。我已成功設置GUI元素之間的插槽/信號對,但由於某種原因,最新一組插槽/信號對正在創建一個錯誤。Qt插槽和信號:在MainWindow中沒有匹配的功能
爲了允許所有的GUI元素來更新我已經建立在每個面板的信號的主窗口中的狀態欄如下所示
class PanelA : public QWidget
{
...
public signals:
void UpdateStatusBar(std::string);
...
}
然後在主窗口中有一個縫隙
//from MainWindow.h
class MainWindow : public QMainWindow
{
private slots:
void ReceiveStatus(std::string);
}
//from MainWindow.cpp
void MainWindow::ReceiveStatus(std::string s)
{
//I can provide other controls, filters, etc.
//but currently there are none
ui->statusBar->showMessage(tr("System status: "+s));
}
最後,在MainWindow構造函數中,我已經有了幾個信號,並且我爲每個GUI元素添加了一個新的連接線。
connect(ui->panelA, &PanelA::SelectionChanged, ui->panelB, &PanelB::UpdateSelection);
//this one works
connect(ui->panelA, &PanelA::UpdateStatusBar, ui, &MainWindow::ReceiveStatus);
//this one generates an error there is one status bar connection for each
所以,據我所知,語法是正確的。 ui-> panelA和ui都是指針。我不知道爲什麼一個是正確的,另一個是錯誤的。我會很感激任何建議。
謝謝。愚蠢的我想念那個。你是對的。 Ui :: MainWindow * ui與定義方法的MainWindow類不同。 – BSD