下面是一个简单的代码,创建一个按钮,并指定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