资源简介
使用qt5做的温度计小程序,可实现自己通过滚动条调节温度

代码片段和文件信息
#include “qcw_thermometer.h“
#include
QcwThermometer::QcwThermometer(QWidget *parent): QWidget(parent)
{
m_value = 0;
m_minValue = -30;
m_maxValue = 70;
m_thresholdUp = -20;
m_thresholdDown = 50;
m_thresholdFlag = false;
m_units = QString::fromUtf8(“°C“ -1);
m_scaleMajor = 10;
m_scaleMinor = 5;
m_borderColor = Qt::blue;
m_foreground = Qt::white;
m_background = QColor(41 137 254);
m_liquidColor = Qt::red;
resize(50 500);
}
void QcwThermometer::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); /* 使用反锯齿(如果可用) */
painter.translate(width() / 2 height() / 2); /* 坐标变换为窗体中心 */
int side = qMin(width() height());
painter.scale(side / 200.0 side / 200.0); /* 比例缩放 */
painter.setPen(Qt::NoPen);
int nSteps = m_scaleMajor * m_scaleMinor;
double step = 400.0 / nSteps;
QFont font = this->font();
/* 绘制边框 */
painter.save();
painter.setPen(QPen(m_borderColor 4));
painter.drawRect(-95 -245 190 490);
painter.restore();
/* 绘制背景 */
painter.save();
painter.setBrush(m_background);
painter.drawRect(-90 -240 180 480);
painter.restore();
/* 绘制液体容器圆 */
painter.save();
painter.setBrush(m_foreground);
painter.drawEllipse(-50 230 40 -40);
painter.restore();
/* 绘制液体容器柱 */
painter.save();
painter.setBrush(m_foreground);
painter.drawRect(-40 210 20 -440);
painter.restore();
/* 绘制单位 */
painter.save();
painter.setPen(m_foreground);
font.setPointSize(18);
painter.setFont(font);
painter.drawText(15 220 m_units);
painter.restore();
/* 绘制刻度线 */
painter.save();
QPen pen(m_foreground);
for (int i = 0 y = 180.0; i <= nSteps; i++ y -= step)
{
if (i % m_scaleMinor == 0)
{
pen.setWidth(2);
painter.setPen(pen);
painter.drawLine(-20 y 0 y);
}
else
{
pen.setWidth(1);
painter.setPen(pen);
painter.drawLine(-20 y -10 y);
}
}
painter.restore();
/* 绘制刻度值 */
painter.save();
painter.setPen(m_foreground);
double tmpVal;
step = 400.0 / m_scaleMajor;
for (int i = 0 y = 185.0; i <= m_scaleMajor; i++ y -= step)
{
tmpVal = 1.0 * i *((m_maxValue - m_minValue) / m_scaleMajor) + m_minValue;
painter.drawText(5 y QString( “%1“ ).arg(tmpVal));
}
painter.restore();
/* 绘制液体圆 */
painter.save();
painter.setBrush(m_liquidColor);
painter.drawEllipse(-45 225 30 -30);
painter.restore();
/* 绘制液体柱(指示) */
painter.save();
painter.setBrush(m_liquidColor);
double val = 400.0 /(m_maxValue - m_minValue)*(m_value - m_minValue);
painter.drawRect(-35 205 10 -val - 25);
painter
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1292 2018-11-21 14:52 bar.pro
文件 5060 2018-11-21 14:54 cthermometer.cpp
文件 2619 2018-11-21 14:51 cthermometer.h
文件 183 2018-11-21 13:59 main.cpp
文件 340 2018-11-21 16:31 mainwindow.cpp
文件 392 2018-11-21 16:31 mainwindow.h
文件 3854 2018-11-21 16:32 mainwindow.ui
文件 2145 2018-11-21 17:50 qcw_thermometer.cpp
文件 549 2018-11-21 16:53 qcw_thermometer.h
文件 9055 2018-11-21 17:22 程序截图.png
文件 5722 2018-11-21 17:24 程序截图2.png
文件 5721 2018-11-21 17:24 程序截图3.png
- 上一篇:QT计算器界面的ui文件
- 下一篇:QT使用openglES模块做的立方体程序
相关资源
- 酒店管理系统基于Qt Creator5)
- vtk QT做的三维地质可视化系统2of2
- Qt局域网聊天软件
- Qt Creator opengl实现四元数鼠标控制轨迹
- QT局域网聊天系统(基于QT5.修改过)
- qt-电子点菜系统
- C 餐厅叫号系统(QT平)
- QT 实现文件下载
- qt图像处理
- QT,JPEG解码源代码(已完成)
- Qt 播放音频文件
- Qt 读取16进制的data文件
- MQTT+串口(usart)透传
- 易语言QQTEA算法源码
- VC工程转Qt工程文件的工具
- MQTT推送Demo
- 基于Linux、QT的视频监控系统的设计与
- Qt 百度地图 定位
- QT酷炫界面开发指南《QmlBook》
- Ubuntu下操作Excel,qt代码
- Qt图片浏览器 --基于Qt的Graphics View f
- qtnribbon2破解
- Qt软件开发 完整项目代码
- MQTT_3.1protocol_Specific中文版
- 在QT中使用RTP进行视频的采集和传输
- Mini6410 Qt4和Qtopia编程开发指南
- Qt实现Code39条形码
- qt_ffmpeg_mp4_export_and_import.zip
- QT5.5入门与项目实战
- Huffman Compress 霍夫曼编码 压缩 解压缩
评论
共有 条评论