我從Qt Framework的示例基礎中收集了一個名爲日曆的應用程序的代碼。我試圖從中學習並添加一些功能。現在我得到的問題是,我想對我創建的兩個按鈕實現兩個功能(一個用於增加日期計數,第二個用於減少)。無法添加插槽並將其連接到按鈕
,我加入到功能增加天的代碼是:
void MainWindow::forward(int *click_forward)
{
click_forward++;
}
並添加到函數的代碼爲降低天:
void MainWindow::backwards(int *click_backwards)
{
click_backwards--;
}
在構造函數我定義了一個名爲click的變量,其類型爲int
,我通過引用將這個變量發送給兩個函數:
forward(&click);
backward(&click);
在標題文件中,在公共slosts區域這些兩個功能都
定義爲:
void forward(int *click_forward);
void backwards(int *click_backwards);
我還實現了兩個SIGNAL-SLOT連接:
QObject::connect(nextbtn, SIGNAL(clicked()), this, SLOT(forward(int
&click)));
QObject::connect(beforebtn, SIGNAL(clicked()), this,
SLOT(backwards(int &clickt)));
但由於某些原因,當我編譯該項目時,我收到的信息是:
QObject::connect: No such slot MainWindow::forward(int &click)
QObject::connect: No such slot MainWindow::backwards(int &clickt)
我想在這兩個函數中使用指針,只是爲了處理原始變量本身而不是在副本上。 我可不可以請你指出我做錯了什麼。
謝謝
你好,信號和插槽需要有相同的簽名。此外,我相信你的意思是(* click_forward)++; 如果您想以這種方式使用插槽,請創建一個維護點擊計數器的中間對象。 – Searles