开始 汽车 智能 虚拟 仪表 1
来源:互联网 发布:knn算法例题 编辑:程序博客网 时间:2024/04/29 23:37
用linux来做
优化启动时间
用qt做界面(后期用android)
用带can的开发平台
1.记录一个qt的paint(zz)
暂时还没有加进去定时器。笨就一个字。以后工作绝对不搞编程。
暂时还没有加进去定时器。笨就一个字。以后工作绝对不搞编程。analogclock.h#ifndef ANALOGCLOCK_H #define ANALOGCLOCK_H #include <QWidget> class AnalogClock : public QWidget { Q_OBJECT public: AnalogClock(QWidget *parent = 0); public slots: void setValue(int); void init(void); protected: void paintEvent(QPaintEvent *event); int mValue; }; #endifanalogclock.cpp#include <QtGui> #include "analogclock.h" AnalogClock::AnalogClock(QWidget *parent) : QWidget(parent) { setWindowTitle(tr("Analog Clock")); //设置标题 setFixedSize(QSize(500,500)); //固定大小 } void AnalogClock::init() //初始化指针 { setValue(0); } void AnalogClock::paintEvent(QPaintEvent *) {//设置指针的关键点 static const QPoint hourHand[8] = { QPoint(4, -20), QPoint(4, -60), QPoint(1, -70), QPoint(1, -80), QPoint(-1, -80), QPoint(-1, -70), QPoint(-4, -60), QPoint(-4,-20) };// 设置颜色 QColor pointer(200,0,0); QColor hourColor(255, 255, 255); QColor minuteColor(255,122,29); QColor textColor(255, 255, 255); int side = qMin(width(), height()); //取最小值 QPainter painter(this); painter.fillRect(rect(), QBrush(Qt::black)); //设置背景颜色 painter.translate(width() / 2, height() / 2); //将二分之一宽和高设为原点 painter.scale(side / 300.0, side / 300.0); //伸缩图片大小//设置指针笔形与填充颜色 painter.setPen(Qt::NoPen); painter.setBrush(pointer);//设置时刻度 painter.save(); painter.setRenderHint(QPainter::Antialiasing,true); painter.setPen(hourColor); for (int i = 0; i < 9; ++i) { painter.drawLine(-53, 73, -62, 85); painter.rotate(36.0); } painter.restore();//设置分刻度 painter.save(); painter.setRenderHint(QPainter::Antialiasing,true); painter.setPen(minuteColor); for (int j = 0; j < 8; ++j) { painter.drawLine(-73, 53, -85, 62); painter.rotate(36.0); } painter.restore();//设置刻度值painter.setPen(textColor);painter.drawText(-61, 57,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(0));//从(x,y)开始,高为30,宽为30painter.drawText(-90, 15,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(10));painter.drawText(-90, -35,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(20));painter.drawText(-62, -71,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(30));painter.drawText(-15, -90,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(40));painter.drawText(32, -71,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(50));painter.drawText(62, -31,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(60));painter.drawText(60, 20,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(70));painter.drawText(35, 55,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(80));//内圆 painter.save(); painter.setRenderHint(QPainter::Antialiasing,true); painter.setPen(QPen(Qt::white,2,Qt::SolidLine)); painter.setBrush(QBrush(Qt::NoBrush)); painter.drawEllipse(-20,-20,40,40); painter.restore();//画指针 painter.save(); painter.setPen(Qt::NoPen); painter.setRenderHint(QPainter::Antialiasing,true); painter.rotate(180+36+mValue*288/80); painter.drawConvexPolygon(hourHand, 8); painter.restore();//最外面圆弧 painter.save(); painter.setPen(QPen(Qt::red,3,Qt::SolidLine)); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawArc(-105,-105,210,210,-54*16,72*16); painter.restore(); painter.save(); painter.setPen(QPen(Qt::yellow,3,Qt::SolidLine)); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawArc(-105,-105,210,210,18*16,144*16); painter.restore(); painter.save(); painter.setPen(QPen(Qt::white,3,Qt::SolidLine)); painter.setRenderHint(QPainter::Antialiasing,true); painter.drawArc(-105,-105,210,210,162*16,72*16); painter.restore();//内圆内数字QFont font;font.setPointSize(12);setFont(font);painter.drawText(-13, -11,30, 30, Qt::AlignHCenter | Qt::AlignTop, QString::number(mValue));}void AnalogClock::setValue(int newvalue){ mValue= newvalue; update();}mainwin.h #ifndef MAINWIN_H #define MAINWIN_H #include <QSlider> #include <QWidget>#include "analogclock.h" class MainWin: public QWidget { Q_OBJECT public: MainWin(QWidget *parent = 0); protected slots: void doValueChanged();private: QSlider slider; AnalogClock clock;}; #endifmainwin.cpp#include <QHBoxLayout>#include <QTimer>#include "mainwin.h" MainWin::MainWin(QWidget *parent) : QWidget(parent), slider(Qt::Vertical) { slider.setRange(0,80); connect(&slider, SIGNAL(valueChanged(int)), &clock, SLOT(setValue(int))); QHBoxLayout* layout = new QHBoxLayout(this); layout->addWidget(&clock); layout->addWidget(&slider); QTimer::singleShot(0,&clock, SLOT(init())); //调用初始化函数 }void MainWin::doValueChanged(){ clock.setValue(slider.value());}main.cpp#include <QApplication>#include "mainwin.h"#include "analogclock.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWin mw; mw.show(); return app.exec(); }
- 开始 汽车 智能 虚拟 仪表 1
- 开始 汽车 智能 虚拟 仪表 2
- 汽车结构之仪表
- Qt 汽车仪表 QWidget
- Qt Qml 汽车仪表
- Qt Qwdget 汽车仪表知识点拆解1 速度表示
- 常见汽车仪表指示灯图例
- 【玖哥乱弹】智能汽车从汽车信息娱乐系统开始
- Qt 汽车仪表再次编写,Widget,仪表显示,绘制界面
- 关于虚拟仪表软件设计问题
- qnx的汽车全液晶仪表-基于qnx系统的汽车仪表-车机系统开发
- 基于WinCE的智能车载仪表设计
- 虚拟仪表控件 v2.0 下载
- 有关汽车仪表的LED与LCD识别
- 使用mega169做汽车仪表项目简单总结
- 正品标榜表板蜡批发汽车仪表蜡光亮蜡
- Qt 绘制汽车仪表 指针旋转锯齿问题
- Qt Qwdget 汽车仪表知识点拆解2 图像放大
- 远程医疗系统中的音视频模块
- linux多线程编程入门
- 如何彻底卸载MySQL
- DAPM之三:audio paths与asound.conf
- 第2章:财务应用程序:计算未来投资值 【对话框】
- 开始 汽车 智能 虚拟 仪表 1
- 全国铁路新票价出炉:降幅0.5元至4元之间
- IDE、SATA、SCSI、SAS、iSCSI
- 作为项目经理如何和大客户沟通打交道
- java中如何判断String中的内容是否为数字?
- JAVA中的匿名类、内部类和匿名内部类
- Java Excel Api及详细教程,适合第一次在Eclipse上读取Excel同学,基本步骤!
- thinkphp的四种控制器URL访问方式
- Tomcat性能调优方案