Files
newspark110/device/ui/devicesysteminfowidget.cpp

60 lines
1.9 KiB
C++

#include"devicesysteminfowidget.h"
#include "ui_devicesysteminfowidget.h"
#include <QPainter>
#include <QDebug>
#include "deviceinfo.h"
DeviceSystemInfoWidget::DeviceSystemInfoWidget(QWidget *parent):
QFrame(parent),
ui(new Ui::DeviceSystemInfoWidget)
{
ui->setupUi(this);
// 获取文本光标(不是鼠标光标)
cursorPosition = ui->textEdit->textCursor();
//insertInformationToText("杭州");
//insertInformationToText("中国");
connect(DEVICE_INFO,SIGNAL(deviceSystemInfoSGL(const QString,SYS_INFO_LEVEL)),this,SLOT(insertInformationToText(const QString&,SYS_INFO_LEVEL)));
}
DeviceSystemInfoWidget::~DeviceSystemInfoWidget()
{
delete ui;
}
void DeviceSystemInfoWidget::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()<<"------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, 0, 0));
break;
case D_WARNING:
fmt.setForeground(QColor(255, 160, 14));
break;
case D_CRITICAL:
fmt.setForeground(QColor(255, 53, 21));
break;
}
// 把格式应用到光标所处在的字符上
cursorPosition.mergeCharFormat(fmt);
cursorPosition.clearSelection(); //撤销选中
}