mainFrm.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "mainFrm.h"
  2. #include <QtConcurrent>
  3. #include <QDebug>
  4. #include<Windows.h>
  5. mainFrm::mainFrm(QWidget *parent)
  6. : QMainWindow(parent)
  7. {
  8. ui.setupUi(this);
  9. QFuture<void> Future = QtConcurrent::run(this, &mainFrm::RunServer);
  10. cv::namedWindow("img", cv::WINDOW_AUTOSIZE);
  11. //再Qt控件上显示cv::nameWindow窗口
  12. HWND hwnd = (HWND)cvGetWindowHandle("img");
  13. HWND paraent = GetParent(hwnd);//得到nameWindow窗口的父句柄
  14. SetParent(hwnd, (HWND)ui.widget->winId());//设置ui控件的句柄是父句柄
  15. ShowWindow(paraent, SW_HIDE);//隐藏掉nameWindow窗口
  16. cv::resizeWindow("img", ui.widget->width(), ui.widget->height());
  17. }
  18. mainFrm::~mainFrm()
  19. {
  20. }
  21. void mainFrm::RunServer()
  22. {
  23. //创建一个用于响应的类
  24. rpcServer service;
  25. //监听的端口,前面的IP地址,似乎只有0,0,0,0和127.0.0.1可用
  26. std::string add_ip("0.0.0.0:50051");
  27. //创建一个服务类
  28. ServerBuilder builder;
  29. //监听,后面那个参数代表不使用ssl加密
  30. builder.SetMaxReceiveMessageSize(INT_MAX);
  31. builder.SetMaxSendMessageSize(10000);
  32. //builder.SetMaxSendMessageSize(INT_MAX);
  33. builder.AddListeningPort(add_ip, grpc::InsecureServerCredentials());
  34. //把我们自己写的响应的类挂上去
  35. builder.RegisterService(&service);
  36. //开始
  37. std::unique_ptr<Server>server(builder.BuildAndStart());
  38. qDebug() << "Server listening on " << add_ip.c_str() ;
  39. //ui.textEdit->setText(" Run Server ok ");
  40. server->Wait();
  41. }