Visual Studio中的Qt:连接插槽和信号不起作用
我已经为VS插件安装了Qt和Qt。一切工作正常,UI应用程序编译和运行没问题,但连接信号和插槽不。我有Q_OBJECT
在我的课,以及用于连接我在构造函数中使用此代码:Visual Studio中的Qt:连接插槽和信号不起作用
connect(ui.mainTableView, SIGNAL(activated(const QModelIndex &)),
this, SLOT(showDetail(const QModelIndex &)));
编辑:
showDetail方法:
void MyClass::showDetail(const QModelIndex &index)
{
this->setWindowTitle("it works");
}
窗口标题不会改变,没有达到断点。
生成文件目录中生成moc文件,但该类的moc文件是空的(其他没有),我认为这是因为类没有信号,但只有一个插槽。
即使由Designer生成的连接不起作用,connect方法的调用返回true
。
结果:
哦,不,它原来是一个愚蠢的问题,谢谢大家,所有的答案把我推向了解决方案,但最后一步就是找出我的平台项目通过双击才能激活单击,而不是单个。对不起
从SIGNAL
和SLOT
宏删除变量名:
connect(ui.mainTableView, SIGNAL(activated(const QModelIndex &)),
this, SLOT(showDetail(const QModelIndex &)));
有关详细信息,请仔细阅读文件上QObject::connect
。
这看起来对我来说是正确的答案。 – Skilldrick 2010-02-26 12:19:42
不幸的是,它不适用于我:-( – Steve 2010-02-26 12:25:07
您是否将'MyClass :: showDetail'标记为'MyClass'类定义中的插槽? – Paul 2010-02-26 12:32:28
在Visual Studio 2012,当试图使用
connect(plot->xAxis, SIGNAL(rangeChanged(QCPRange)), plot->xAxis2, SLOT(setRange(QCPRange)));
我得到plot
和SIGNAL
错误。
这是因为Visual Studio发现了不正确的连接。它在winsock.h
中找到了connect
。
要解决这个错误,我用了QObject
命名空间如下:
QObject::connect(plot->xAxis, SIGNAL(rangeChanged(QCPRange)), plot->xAxis2, SLOT(setRange(QCPRange)));
仅供参考,这里是错误的信息。
对于第一plot
参数中的错误是:
ERROR: argument of type "QCPAxis*" is incompatible with parameter of type "Socket".
对于第一SIGNAL
误差为:
ERROR: argument of type "cosnt Char*" is incompatible with parameter of type "const sockaddr*".
对于第二plot
参数中的错误是:
ERROR: argument of type "QCPAxis*" is incompatible with parameter of type "int".
对于第二个SIGNAL
t他的错误是:
ERROR: too many arguments in function call.
错误列表应该有所帮助。发表它。 – Mike 2010-02-26 11:57:09
你应该发布你的结果作为答案,而不是问题的一部分。 – 2010-02-26 16:43:57
Caleb Huitt - cjhuitt:done。 – Steve 2010-02-27 17:35:06