⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lmsensordockpanel.cpp

📁 这是linux下读取pc主板温度传感器的源代码
💻 CPP
字号:
/***************************************************************************                    lmsensordockpanel.cpp  -  description                             -------------------    begin                : Tue Sep 18 2001    copyright            : (C) 2001 by Miguel Novas    email                : michaell@teleline.es ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/#include <qpixmap.h>#include <kstddirs.h>#include <klocale.h>#include <kconfig.h>#include <kiconloader.h>#include "lmsensordockpanel.h"LMSensorDockPanel::LMSensorDockPanel(Sensor *newSensor, const char *name) : KSystemTray( 0, name ){ strValue   = ""; if(newSensor) {    sensor= newSensor;    updateConfig();    connect( newSensor, SIGNAL(valueChanged(double)) , this, SLOT(setValue(double)) );    connect( newSensor, SIGNAL(configChanged())      , this, SLOT(updateConfig()) );    setPixmap(0);	 } else {    sensor= 0;    setPixmap(BarIcon("ksensorsdocked")); }}LMSensorDockPanel::~LMSensorDockPanel(){}void LMSensorDockPanel::setValue(double value){ if(sensor) {   switch(sensor->getType()) {    case Sensor::lmTemp:      strValue.sprintf("%2.0f",value);      break;    case Sensor::lmFan:      strValue.sprintf("%1.1f",value/1000);      break;    case Sensor::lmVoltage:      strValue.sprintf("%2.1f",value);      break;   }   update(); }}void LMSensorDockPanel::updateConfig(){ colorAlarm = readColorAlarm (name()); colorNormal= readColorNormal(name()); setValue(sensor->getValue());}void LMSensorDockPanel::paintEvent ( QPaintEvent *e ){ if(sensor) {   int w= width();   int h= height();   QPainter painter(this);   QColor color= sensor->getAlarm() ? colorAlarm : colorNormal;   QColor colorShadow= color.dark(200);   painter.setPen(color);   painter.drawLine(2, 2  , w-2,2  );   painter.drawLine(2, h-3, w-2,h-3);   painter.setPen(colorShadow);   painter.drawLine(3, 3  , w-3,3  );   painter.drawLine(3, h-4, w-3,h-4);   if(sensor->getType()==Sensor::lmTemp) {     QLcd::draw(&painter,4,6,w-6, h-12,strValue.latin1(),QLcd::drawShadow,&color,&colorShadow);   } else {     QLcd::draw(&painter,1,7,w-1, h-14,strValue.latin1(),QLcd::drawNumber|QLcd::alignCenter|QLcd::drawShadow,&color,&colorShadow);   } } else {   KSystemTray::paintEvent(e); }}void LMSensorDockPanel::mousePressEvent ( QMouseEvent *e ){ emit mouseEvent(e);}void LMSensorDockPanel::mouseReleaseEvent ( QMouseEvent *e ){ emit mouseEvent(e);}//*****************************************************************+void LMSensorDockPanel::writeColorAlarm(const char *name, const QColor &color){ KGlobal::config()->setGroup(name); KGlobal::config()->writeEntry("colorAlarm",color);}void LMSensorDockPanel::writeColorNormal(const char *name,const QColor &color){ KGlobal::config()->setGroup(name); KGlobal::config()->writeEntry("colorNormal",color);}QColor LMSensorDockPanel::readColorAlarm(const char *name){ KGlobal::config()->setGroup(name); return KGlobal::config()->readColorEntry("colorAlarm" , &red  );}QColor LMSensorDockPanel::readColorNormal(const char *name){  KGlobal::config()->setGroup(name);  return KGlobal::config()->readColorEntry("colorNormal", &darkGreen);}void LMSensorDockPanel::writeShowInDock(const char *name, bool fShow){ KGlobal::config()->setGroup(name); KGlobal::config()->writeEntry("showInDock",fShow);}bool LMSensorDockPanel::readShowInDock(const char *name){ KGlobal::config()->setGroup(name); return KGlobal::config()->readBoolEntry("showInDock", false);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -