नहीं है app.exec()
एक अनंत लूप है कि रिटर्न main()
?
मैं पाश के लिए चाहते हैं के सर्वर क्लाइंट संचार के नीचे, लेकिन यह बस लोगों को मार डाला और फिर मुख्य समारोह के साथ समाप्त होता है app.exec()
मैं नया हूँ, दोनों के लिए और क्यूटी सी++, कैसे कर सकते हैं मैं इस का प्रबंधन पाशन?
int main(int argc, char *argv[])
{
cout << "Waiting for the next request " << endl;
QApplication app(argc, argv);
// Prepare our context and socket
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_REP);
socket.bind("tcp://*:2424");
zmq::message_t request;
QQmlApplicationEngine engine;
VideoStreamer videoStreamer;
imageProvider *liveOriginalImageProvider(new imageProvider);
imageProvider *liveMaskedImageProvider(new imageProvider);
//********SERVER CLIENT COMMUNICATION BEGINS******//
// Wait for next request from client
cout << "Waiting for the next request ." << endl;
socket.recv(&request);
cout << "Waiting for the next request.. " << endl;
string replyMessage = string(static_cast<char *>(request.data()), request.size());
// Print out received message
cout << "Received from client (Python): " + replyMessage << endl;
// See the gradual sending/replying from client
sleep(1);
// Send reply back to client
string msgToClient("W");
zmq::message_t reply(msgToClient.size());
memcpy((void *) reply.data(), (msgToClient.c_str()), msgToClient.size());
socket.send(reply);
//*********SERVER CLIENT COMMUNICATION ENDS**********//
engine.rootContext()->setContextProperty("VideoStreamer",&videoStreamer);
engine.rootContext()->setContextProperty("liveOriginalImageProvider",liveOriginalImageProvider);
engine.rootContext()->setContextProperty("liveMaskedImageProvider",liveMaskedImageProvider);
engine.addImageProvider("liveOriginal",liveOriginalImageProvider);
engine.addImageProvider("liveMasked",liveMaskedImageProvider);
const QUrl url(QStringLiteral("qrc:/main.qml"));
engine.load(url);
QObject::connect(&videoStreamer,&VideoStreamer::originalImage,liveOriginalImageProvider,&imageProvider::updateImage);
QObject::connect(&videoStreamer,&VideoStreamer::maskedImage,liveMaskedImageProvider,&imageProvider::updateImage);
return app.exec();
}
---------अद्यतन---------
मैं बनाया इस धागे में धागा । ज
class MyThread : public QThread{
public slots:
void run();
};
में thread.cpp मैं घोषित विधि:
void MyThread :: run() {
// Prepare our context and socket
zmq::context_t context(1);
zmq::socket_t socket(context, ZMQ_REP);
socket.bind("tcp://*:2424");
zmq::message_t request;
//********SERVER CLIENT COMMUNICATION BEGINS******//
// Wait for next request from client
cout << "Waiting for the next request ." << endl;
socket.recv(&request);
cout << "Waiting for the next request.. " << endl;
string replyMessage = string(static_cast<char *>(request.data()), request.size());
// Print out received message
cout << "Received from client (Python): " + replyMessage << endl;
// See the gradual sending/replying from client
sleep(1);
// Send reply back to client
string msgToClient("W");
zmq::message_t reply(msgToClient.size());
memcpy((void *) reply.data(), (msgToClient.c_str()), msgToClient.size());
socket.send(reply);
exec();
//*********SERVER CLIENT COMMUNICATION ENDS**********//
}
में main.cpp मैं यह कहा जाता है:
QThread *thread = new QThread();
MyThread *myThread = new MyThread();
myThread->moveToThread(thread);
myThread->connect(thread, SIGNAL(started()), myThread, SLOT(run()));
thread->start();
मैं Error: Class declaration lacks Q_OBJECT macro.
नहीं QThread वारिस QObject? कैसे कर सकते हैं मैं फोन पाश ठीक से?