我有2节课:
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);
};
在服务器类中,我有信号:
void RecieveMessage(QString);
在ChessLanTEst类中,我有插槽:
void ShowMessage(QString);
我将它连接到ChessLanTEst构造函数中:
connect(server_, &Server::RecieveMessage, this, &ChessLanTEst::ShowMessage);
但我没有收到此信号,也不知道为什么。
根据意见,你在构造函数中发出server_
,之前你做connect
(因为如果你有有效的价值构造函数返回server_
指针)。
发射器本身从来没有排队过,必须在发出呼叫之前(已排队的呼叫)完成连接。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句