widget.cpp 6.7 KB

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