下面是一個簡單的代碼,創建一個按鈕,並指定onclick處理程序:Qt:爲什麼connect()只能在主窗口類中工作?
auto btn = new QPushButton("CLICK ME");
connect(btn, SIGNAL(clicked()), this, SLOT(btn_Click()));
private slots:
void btn_Click() {
alert("clicked!");
}
它的工作原理,因爲它應該好象叫主窗口類。但是,當我嘗試在子窗口中執行此操作時,單擊該按鈕不會執行任何操作。子窗口如下所示:
auto settingsWindow = new SettingsWindow();
settingsWindow->show();
我想它是以某種方式與接收器對象連接的,它現在是不同的窗口。但是我怎麼能使它工作?
你忘了在類定義中包含Q_OBJECT嗎? – Patrick 2012-04-18 10:35:24
很可能是'Q_OBJECT'問題。除非在控制檯中出現錯誤(即無法將信號連接到插槽) – Anonymous 2012-04-18 10:44:18