【发布时间】:2017-04-04 05:33:50
【问题描述】:
我想将 textChanged 信号连接到 QLineEdit,但它永远不会被调用:
class Dialog : public QDialog
{
Q_OBJECT
public:
Dialog();
virtual ~Dialog();
QLineEdit *nameEdit;
public slot:
void nameChanged(const QString &);
};
.c 文件:
Dialog::Dialog()
{
nameEdit=new QLineEdit;
connect(nameEdit, SIGNAL(textChanged(const QString &)), this, SLOT(nameChanged(const QString &)));
...
}
void Dialog::nameChanged(const QString & txt)
{
// NEVER CALLED
}
我做错了什么?
【问题讨论】:
-
它启动时是否给出调试消息,表明信号/插槽不可用?查看您的控制台/终端。
-
它实际上是我正在编写的 Maya 插件的一部分,因此无法访问 Qt 控制台。
-
你的 nameChanged() 函数是否标记为插槽?
-
为什么
nameChanged在信号下?它应该是一个插槽。 -
顺便说一句,
nameEdit=new QLineEdit( ---> this <--- );
标签: c++ qt qt-signals