I는 2 종류있다 : I 슬롯이 ChessLanTEst 클래스Qt는 신호 슬롯 문제
void RecieveMessage(QString);
: 서버 클래스
class Server : public QTcpServer
{
Q_OBJECT
public:
Server(QObject * parent = 0 , quint16 port = 1922);
void SendData(QString data);
virtual ~Server();
signals:
void RecieveMessage(QString);
private slots:
void acceptConnection();
void startRead();
void disconnected();
private:
QTcpServer *tcpServer;
QTcpSocket *client;
};
및
class ChessLanTEst : public QMainWindow
{
Q_OBJECT
public:
friend class Server;
friend class Client;
ChessLanTEst(QWidget *parent = 0);
~ChessLanTEst();
private:
Ui::ChessLanTEstClass ui;
Server *server_;
Client *client_;
private slots:
void createGame();
void ShowMessage(QString);
};
를 I 신호를
void ShowMessage(QString);
0과 나는 ChessLanTEst 생성자에 연결 :
connect(server_, &Server::RecieveMessage, this, &ChessLanTEst::ShowMessage);
하지만이 신호를 수신하지 않고 내가 왜 모르겠어요.
런타임에 메시지를 받았습니까? –
'connect'의 반환 값을 확인하십시오. 정말로 신호를 내 보낸다 (브레이크 포인트 또는 디버그 프린트로). – hyde
그리고'server_'가 유효한 포인터인지,'nullptr'가 아니라 초기화되었는지 확인하십시오. 또한 Qt5를 사용하고 있습니까? – hyde