ch_widget.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #include "ch_widget.h"
  2. #include "ui_ch_widget.h"
  3. #include "warningwnd.h"
  4. #include <QDebug>
  5. #define RunStatus "#ch_Widget{border: 2px solid #00FF00;background-color: #FFFFFF;border-radius: 15px;}QLabel { color: #00FF00; }"
  6. #define StopStatus "#ch_Widget{border: 2px solid #000000;background-color: #FFFFFF;border-radius: 15px;}QLabel { color: #000000; }"
  7. #define WarningStatus "#ch_Widget{border: 2px solid #0000FF;background-color: #FFFFFF;border-radius: 15px;}QLabel { color: #0000FF; }"
  8. ch_Widget::ch_Widget(QWidget *parent) :
  9. QWidget(parent),
  10. ui(new Ui::ch_Widget),
  11. m_pCHData(nullptr),
  12. m_pChWarning(nullptr)
  13. {
  14. ui->setupUi(this);
  15. pTimeLastset=QTime::currentTime();
  16. }
  17. ch_Widget::~ch_Widget()
  18. {
  19. delete ui;
  20. }
  21. void ch_Widget::setDataCHP(int nIndex, PowerInfo *pdata,PowerWarningInfo* pWarn)
  22. {
  23. if(pdata&&pWarn)
  24. {
  25. m_nIndex=nIndex;
  26. m_pCHData=pdata;
  27. m_pChWarning=pWarn;
  28. UpdateData();
  29. }
  30. }
  31. void ch_Widget::UpdateData()
  32. {
  33. if(m_pCHData)
  34. {
  35. ui->label_CH->setText("CH"+QString::number(m_nIndex));
  36. ui->label_V->setText(QString::number(m_pCHData->voltage, 'f', 2));
  37. ui->label_I->setText(QString::number(m_pCHData->current, 'f', 2));
  38. ui->label_P->setText(QString::number(m_pCHData->power,'f', 2));
  39. ui->label_W->setText(QString::number(m_pCHData->consumption, 'f', 2));
  40. //if(m_pCHData->status!=nStatus)
  41. {
  42. nStatus=m_pCHData->status;
  43. if(nStatus==1)
  44. {
  45. if(m_pChWarning&&(m_pChWarning->w_voltage_up||m_pChWarning->w_voltage_down||m_pChWarning->w_current||m_pChWarning->w_power||m_pChWarning->w_consumption))
  46. {
  47. this->setStyleSheet(WarningStatus);
  48. }else
  49. {
  50. this->setStyleSheet(RunStatus);
  51. }
  52. /*
  53. if(m_pChWarning)
  54. {
  55. if(m_pChWarning->w_voltage_up) {qDebug()<<"HaveWarning "<< m_nIndex<<" V_up";}
  56. if(m_pChWarning->w_voltage_down){qDebug()<<"HaveWarning "<< m_nIndex<<" V_down";}
  57. if(m_pChWarning->w_current) {qDebug()<<"HaveWarning "<< m_nIndex<<" I_up";}
  58. if(m_pChWarning->w_power) {qDebug()<<"HaveWarning "<< m_nIndex<<" P_up";}
  59. if(m_pChWarning->w_consumption) {qDebug()<<"HaveWarning "<< m_nIndex<<" SUM_up";}
  60. }else
  61. {
  62. qDebug()<<"No Warning Load CH"<<m_nIndex;
  63. }*/
  64. }else
  65. {
  66. this->setStyleSheet(StopStatus);
  67. }
  68. }
  69. }
  70. }
  71. void ch_Widget::mouseDoubleClickEvent(QMouseEvent *event)
  72. {
  73. if (event->buttons()&Qt::MouseButton::LeftButton)
  74. {
  75. qDebug()<<"Clicke CH"+QString::number(m_nIndex);
  76. QTime pNow=QTime::currentTime();
  77. if(pTimeLastset.msecsTo(pNow)<250)
  78. {
  79. qDebug()<<"DClicke CH"+QString::number(m_nIndex);
  80. emit singal_DoubleClick(m_nIndex);
  81. }
  82. pTimeLastset=pNow;
  83. }
  84. }
  85. bool ch_Widget::event(QEvent *event)
  86. {
  87. if (event->type() == QEvent::TouchBegin ||
  88. event->type() == QEvent::TouchUpdate ||
  89. event->type() == QEvent::TouchEnd) {
  90. // 不处理触摸事件,交给父级(QScrollArea 的视口)处理
  91. event->ignore(); // 标记事件未处理
  92. return false;
  93. }
  94. return QWidget::event(event);
  95. }