Files
newspark110/device/ui/devicealarmwidget.cpp
Chenwenxuan edac2715f0 init
2024-03-06 14:54:30 +08:00

59 lines
1.9 KiB
C++

#include"devicealarmwidget.h"
#include "deviceinfo.h"
#include <QDebug>
DeviceAlarmWidget::DeviceAlarmWidget(QWidget *parent):
QFrame(parent),
ui(new Ui::DeviceAlarmWidget)
{
ui->setupUi(this);
// 获取文本光标(不是鼠标光标)
cursorPosition = ui->textEdit->textCursor();
connect(DEVICE_INFO,SIGNAL(deviceSalamInfoSGL(const QString,SYS_INFO_LEVEL)),this,SLOT(insertInformationToText(const QString&,SYS_INFO_LEVEL)));
}
DeviceAlarmWidget::~DeviceAlarmWidget()
{
delete ui;
}
void DeviceAlarmWidget::insertInformationToText(const QString text,SYS_INFO_LEVEL level)
{
//光标移动到文档首部
cursorPosition.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor);
//插入换行符
cursorPosition.insertText("\n");
//光标移动到文档首部
cursorPosition.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor);
//插入信息
cursorPosition.insertText(text);
//选中该行文字
cursorPosition.movePosition(QTextCursor::Start,QTextCursor::MoveAnchor);
//qDebug()<<"------salam text.length(): "<<text.length()<<endl;
cursorPosition.setPosition(cursorPosition.position() + text.length(),QTextCursor::KeepAnchor);
// 只选单词,不选数字
//cursorPosition.select(QTextCursor::WordUnderCursor);
//cursorPosition.select(QTextCursor::LineUnderCursor);
cursorPosition.select(QTextCursor::BlockUnderCursor);
QTextCharFormat fmt;
switch (level)
{
case D_NOTHING:
fmt.setForeground(QColor(0, 160, 0));
break;
case D_WARNING:
fmt.setForeground(QColor(220, 160, 14));
break;
case D_CRITICAL:
fmt.setForeground(QColor(180, 53, 21));
break;
}
// 把格式应用到光标所处在的字符上
cursorPosition.mergeCharFormat(fmt);
cursorPosition.clearSelection(); //撤销选中
}