急求!!qt找不到信号槽函数!
本渣周五要交大作业了。。到今天还没搞定socket...求各位大神帮忙(在qt4 那本书上的关于tcp的范例)
我派生了一个继承QTcpSocket的类 MySocket
然后在Mysocket的构造函数里面连接了readyrad和槽。
编译通过。但是运行的时候告诉我:Object::connect: No such slot QTcpSocket::wtf() in mysocket.cpp:8
!!!这是为什么呢!
mysocket.h
#ifndef MYSOCKET_H
#define MYSOCKET_H
#include <QTcpSocket>
class MySocket : public QTcpSocket
{
public:
MySocket();
private slots:
void readClient();
void wtf();
private:
void sentResult();
quint16 nextBlockSize;
};
#endif // MYSOCKET_H
mysocket.cpp
#include <QtNetwork>--------------------编程问答-------------------- clean了 重新 qmake make 一下 --------------------编程问答-------------------- 缺少宏定义
#include "mysocket.h"
MySocket::MySocket()
{
// connect(this, SIGNAL(disconnected()), this, SLOT(deleteLater()));
connect(this, SIGNAL(readyRead()), this, SLOT(wtf()));
nextBlockSize = 0;
}
void MySocket::wtf()
{
qDebug()<<"??";
QDataStream in(this);
in.setVersion(QDataStream::Qt_4_7);
if (nextBlockSize == 0) {
if (bytesAvailable() < sizeof(quint16))
return;
in >> nextBlockSize;
}
if (bytesAvailable() < nextBlockSize)
return;
QString temp;
in >> temp;
qDebug()<<temp;
QDataStream out(this);
out << quint16(0xFFFF);
close();
}
void MySocket::sentResult()
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_4_7);
out.device()->seek(0);
out<<quint16(block.size()-sizeof(quint16));
write(block);
}
Q_OBJECT --------------------编程问答-------------------- connect可这样写的?发送接收收一样的 --------------------编程问答--------------------
没有这个宏。 --------------------编程问答--------------------
要使用信号槽就得在类定义的时候加入Q_OBJECT,要不就得用
QObject::connect --------------------编程问答--------------------
缺少宏定义
Q_OBJECT
没有这个宏。
要使用信号槽就得在类定义的时候加入Q_OBJECT,要不就得用
QObject::connect
这个宏跟QObject::connect没什么关系。可以看一下Qt元对象机制。这个宏和moc编译器会生成一些moc开头的文件。你的槽函数是在那个文件中调用的。 --------------------编程问答--------------------
不对啊。
缺少宏定义
Q_OBJECT
没有这个宏。
要使用信号槽就得在类定义的时候加入Q_OBJECT,要不就得用
QObject::connect
这个宏跟QObject::connect没什么关系。可以看一下Qt元对象机制。这个宏和moc编译器会生成一些moc开头的文件。你的槽函数是在那个文件中调用的。
反正自定义的QT类如果要使用信号槽就把Q_OBJECT加上,不加八成出问题。 --------------------编程问答--------------------
缺少宏定义
Q_OBJECT
缺少宏定义
Q_OBJECT
Q_OBJECT
补充:移动开发 , Qt