widget.cpp 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. #include <QResizeEvent>
  4. #include <QApplication>
  5. #include <QLibrary>
  6. #include <QDebug>
  7. #include <QSettings>
  8. #include "cameraplayer.h"
  9. widget::widget(QWidget *parent) :
  10. QWidget(parent),
  11. ui(new Ui::widget)
  12. {
  13. ui->setupUi(this);
  14. initCameraPlayer();
  15. }
  16. widget::~widget()
  17. {
  18. delete m_cameraPlayer1;
  19. m_cameraPlayer1 = nullptr;
  20. delete m_cameraPlayer2;
  21. m_cameraPlayer2 = nullptr;
  22. delete m_cameraPlayer3;
  23. m_cameraPlayer3 = nullptr;
  24. delete m_cameraPlayer4;
  25. m_cameraPlayer4 = nullptr;
  26. delete ui;
  27. }
  28. /* 开启预览按钮 */
  29. void widget::on_pBtn_startRealPlay_clicked()
  30. {
  31. if(m_cameraPlayer1 != nullptr)
  32. {
  33. m_cameraPlayer1->startPlay();
  34. }
  35. if(m_cameraPlayer2 != nullptr)
  36. {
  37. m_cameraPlayer2->startPlay();
  38. }
  39. if(m_cameraPlayer3 != nullptr)
  40. {
  41. m_cameraPlayer3->startPlay();
  42. }
  43. if(m_cameraPlayer4 != nullptr)
  44. {
  45. m_cameraPlayer4->startPlay();
  46. }
  47. }
  48. /* 重新创建窗口 */
  49. void widget::on_pBtn_reCreate_clicked()
  50. {
  51. if(m_cameraPlayer1 != nullptr)
  52. {
  53. delete m_cameraPlayer1;
  54. m_cameraPlayer1 = nullptr;
  55. }
  56. if(m_cameraPlayer2 != nullptr)
  57. {
  58. delete m_cameraPlayer2;
  59. m_cameraPlayer2 = nullptr;
  60. }
  61. if(m_cameraPlayer3 != nullptr)
  62. {
  63. delete m_cameraPlayer3;
  64. m_cameraPlayer3 = nullptr;
  65. }
  66. if(m_cameraPlayer4 != nullptr)
  67. {
  68. delete m_cameraPlayer4;
  69. m_cameraPlayer4 = nullptr;
  70. }
  71. initCameraPlayer();
  72. on_pBtn_startRealPlay_clicked();
  73. }
  74. /* 窗口缩放事件 */
  75. void widget::resizeEvent(QResizeEvent *event)
  76. {
  77. QWidget::resizeEvent(event);
  78. /* 获取窗口大小 */
  79. QSize size = ui->widget_display1->size();
  80. if(m_cameraPlayer1 != nullptr)
  81. m_cameraPlayer1->setPlayWndSize(size);
  82. if(m_cameraPlayer2 != nullptr)
  83. m_cameraPlayer2->setPlayWndSize(size);
  84. if(m_cameraPlayer3 != nullptr)
  85. m_cameraPlayer3->setPlayWndSize(size);
  86. if(m_cameraPlayer4 != nullptr)
  87. m_cameraPlayer4->setPlayWndSize(size);
  88. }
  89. /* 显示事件 */
  90. void widget::showEvent(QShowEvent *event)
  91. {
  92. QWidget::showEvent(event);
  93. /* 获取窗口大小 */
  94. QSize size = ui->widget_display1->size();
  95. if(m_cameraPlayer1 != nullptr)
  96. m_cameraPlayer1->setPlayWndSize(size);
  97. if(m_cameraPlayer2 != nullptr)
  98. m_cameraPlayer2->setPlayWndSize(size);
  99. if(m_cameraPlayer3 != nullptr)
  100. m_cameraPlayer3->setPlayWndSize(size);
  101. if(m_cameraPlayer4 != nullptr)
  102. m_cameraPlayer4->setPlayWndSize(size);
  103. }
  104. void widget::initCameraPlayer()
  105. {
  106. /* 通过文件读取摄像机IP信息 */
  107. readCameraInfo();
  108. // QImage image(1666, 720, QImage::Format_RGB888);
  109. // image.fill(Qt::green);
  110. QString imagePath = QApplication::applicationDirPath() + "/0.jpg";
  111. QImage image(imagePath);
  112. CameraInfo_t cam1 = m_listCameraInfo.at(0);
  113. if(!cam1.cameraIp.isEmpty())
  114. {
  115. /* 创建摄像机播放器 */
  116. m_cameraPlayer1 = new CameraPlayer;
  117. m_cameraPlayer1->setImage(image);
  118. m_cameraPlayer1->initCamera(cam1.cameraIp, cam1.cameraPort, cam1.username, cam1.password);
  119. m_cameraPlayer1->startRealPlay(1);
  120. /* 设置播放窗口 */
  121. m_cameraPlayer1->setPlayWndParent(ui->widget_display1);
  122. m_cameraPlayer1->setPlayWndSize(ui->widget_display1->size());
  123. }
  124. /* 创建其他播放窗口 */
  125. if(m_listCameraInfo.size() < 2)
  126. {
  127. return;
  128. }
  129. CameraInfo_t cam2 = m_listCameraInfo.at(1);
  130. if(!cam2.cameraIp.isEmpty())
  131. {
  132. m_cameraPlayer2 = new CameraPlayer;
  133. m_cameraPlayer2->setImage(image);
  134. m_cameraPlayer2->initCamera(cam2.cameraIp, cam2.cameraPort, cam2.username, cam2.password);
  135. m_cameraPlayer2->startRealPlay(1);
  136. m_cameraPlayer2->setPlayWndParent(ui->widget_display2);
  137. m_cameraPlayer2->setPlayWndSize(ui->widget_display2->size());
  138. }
  139. if(m_listCameraInfo.size() < 3)
  140. {
  141. return;
  142. }
  143. CameraInfo_t cam3 = m_listCameraInfo.at(2);
  144. if(!cam3.cameraIp.isEmpty())
  145. {
  146. m_cameraPlayer3 = new CameraPlayer;
  147. m_cameraPlayer3->setImage(image);
  148. m_cameraPlayer3->initCamera(cam3.cameraIp, cam3.cameraPort, cam3.username, cam3.password);
  149. m_cameraPlayer3->startRealPlay(1);
  150. m_cameraPlayer3->setPlayWndParent(ui->widget_display3);
  151. m_cameraPlayer3->setPlayWndSize(ui->widget_display3->size());
  152. }
  153. if(m_listCameraInfo.size() < 4)
  154. {
  155. return;
  156. }
  157. CameraInfo_t cam4 = m_listCameraInfo.at(3);
  158. if(!cam4.cameraIp.isEmpty())
  159. {
  160. m_cameraPlayer4 = new CameraPlayer;
  161. m_cameraPlayer4->setImage(image);
  162. m_cameraPlayer4->initCamera(cam4.cameraIp, cam4.cameraPort, cam4.username, cam4.password);
  163. m_cameraPlayer4->startRealPlay(1);
  164. m_cameraPlayer4->setPlayWndParent(ui->widget_display4);
  165. m_cameraPlayer4->setPlayWndSize(ui->widget_display4->size());
  166. }
  167. }
  168. /* 读取摄像机IP信息 */
  169. void widget::readCameraInfo()
  170. {
  171. QSettings settings("camera.ini", QSettings::IniFormat);
  172. settings.beginGroup("Camera1");
  173. CameraInfo_t info1;
  174. info1.cameraIp = settings.value("IP", "").toString();
  175. info1.cameraPort = settings.value("Port", 0).toInt();
  176. info1.username = settings.value("Username", "").toString();
  177. info1.password = settings.value("Password", "").toString();
  178. settings.endGroup();
  179. m_listCameraInfo.append(info1);
  180. settings.beginGroup("Camera2");
  181. CameraInfo_t info2;
  182. info2.cameraIp = settings.value("IP", "").toString();
  183. info2.cameraPort = settings.value("Port", 0).toInt();
  184. info2.username = settings.value("Username", "").toString();
  185. info2.password = settings.value("Password", "").toString();
  186. settings.endGroup();
  187. m_listCameraInfo.append(info2);
  188. settings.beginGroup("Camera3");
  189. CameraInfo_t info3;
  190. info3.cameraIp = settings.value("IP", "").toString();
  191. info3.cameraPort = settings.value("Port", 0).toInt();
  192. info3.username = settings.value("Username", "").toString();
  193. info3.password = settings.value("Password", "").toString();
  194. settings.endGroup();
  195. m_listCameraInfo.append(info3);
  196. settings.beginGroup("Camera4");
  197. CameraInfo_t info4;
  198. info4.cameraIp = settings.value("IP", "").toString();
  199. info4.cameraPort = settings.value("Port", 0).toInt();
  200. info4.username = settings.value("Username", "").toString();
  201. info4.password = settings.value("Password", "").toString();
  202. settings.endGroup();
  203. m_listCameraInfo.append(info4);
  204. }