Qt 在Label上面绘制罗盘

简介: 自己写的一个小小的电子罗盘的一个小程序,不过是项目的一部分,只可以贴绘制部分代码

效果如下图

image.pngimage.png

void MainWidget::draw_Direction()
{
    QPainter painter1(ui->label_Direction);
    painter1.setRenderHint(QPainter::Antialiasing,true);
    painter1.setPen(QPen(QColor(Qt::blue),1.5,Qt::SolidLine,Qt::FlatCap));
    /*
     * move point
    QTransform t_y;
    t_y.rotate(-90,Qt::YAxis);
    painter1.setTransform(t_y);
    int temp =30;
    QTransform t_z;
    t_z.rotate(temp,Qt::ZAxis);
    painter1.setTransform(t_z);
    painter1.translate(0+135*qCos(30*PI/180.0),0-135*qSin(30*PI/180.0));
    painter1.translate(0-39+96,0-39-96);
    painter1.translate((0-(((135/(qCos(45*PI/180.0)))*qSin((temp+45)*PI/180.0)-135)*(qSin(temp*PI/180.0)))+(135-((135/(qCos(45*PI/180.0)))*qCos((temp+45)*PI/180.0)))),((0-(((135/(qCos(45*PI/180.0)))*qSin((temp+45)*PI/180.0)-135)*(qCos(temp*PI/180.0))))-(135-((135/(qCos(45*PI/180.0)))*qSin((temp+45)*PI/180.0)))));
    painter1.translate(0-((TEMP_R*qSin((temp+45)*PI/180.0))-135)*qCos((temp)*PI/180.0)+(TEMP_R*qCos((temp)*PI/180.0))* qCos((temp)*PI/180.0),0-((TEMP_R*qSin((temp+45)*PI/180.0))-135)*qSin((temp)*PI/180.0)-(TEMP_R*qCos((temp)*PI/180.0))* qSin((temp)*PI/180.0));
    qDebug()<<(TEMP_R*qCos((temp)*PI/180.0))* qSin((temp)*PI/180.0);
    */
    painter1.translate(135,135);
    painter1.save();
    painter1.rotate(num_Angle);
    for(int i = 0;i<360;)
    {
        if((i%90) == 0)
        {
            painter1.drawLine(0+(95*qSin(i*PI/180.0)),0-(95*qCos(i*PI/180.0)),0+(100*qSin(i*PI/180.0)),0-(100*qCos(i*PI/180.0)));
            i=i+30;
        }
        painter1.drawLine(0+(95*qSin(i*PI/180.0)),0-(95*qCos(i*PI/180.0)),0+(110*qSin(i*PI/180.0)),0-(110*qCos(i*PI/180.0)));
        i=i+30;
    }
    for(int j = 0;j<360;)
    {
        if((j%30) == 0 || (j%90) == 0)
        {
            j= j+10;
        }
        painter1.drawLine(0+(100*qSin(j*PI/180.0)),0-(100*qCos(j*PI/180.0)),0+(110*qSin(j*PI/180.0)),0-(110*qCos(j*PI/180.0)));
        j=j+10;
    }
    painter1.setPen(QPen(QColor(Qt::blue),3,Qt::SolidLine,Qt::FlatCap));
    QRect rect1(-7,-113,15,15);
    QRect rect1_1(-7,-95,15,15);
    QRect rect2(-112,-9,15,15);
    QRect rect3(-7,103,15,15);
    QRect rect4(100,-9,15,15);
    QString str_N = "N";
    QString str_S = "S";
    QString str_W = "W";
    QString str_E = "E";
    QFont font("宋体",16,QFont::Bold);
    painter1.setFont(font);
    painter1.drawText(rect1,Qt::AlignCenter,str_N);
    painter1.drawText(rect2,Qt::AlignCenter,str_W);
    painter1.drawText(rect3,Qt::AlignCenter,str_S);
    painter1.drawText(rect4,Qt::AlignCenter,str_E);
    QPixmap pixmap_pointer;
    pixmap_pointer.load(":/Global/Source/Global/Pointer.png");
    painter1.drawPixmap(rect1_1,pixmap_pointer);
    painter1.restore();
    QRect rect_pixmap(-15,-15,30,30);
    QPixmap pixmap_plane;
    pixmap_plane.load(":/Global/Source/Global/Plane.png");
    painter1.drawPixmap(rect_pixmap,pixmap_plane);
}

至于好多人不知道怎么在Lable上面绘图,可以参考我以前写的

Qt 在控件上面绘图 label,pushbutton。。。。。

http://blog.csdn.net/z609932088/article/details/50952086

目录
相关文章
|
5月前
|
Windows
【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
【Qt 学习笔记】Qt常用控件 | 显示类控件 | Label的使用及说明
261 0
|
8月前
|
C++
[Qt5&控件] Label控件显示文本内容(字符串和整数)
[Qt5&控件] Label控件显示文本内容(字符串和整数)
164 0
[Qt5&控件] Label控件显示文本内容(字符串和整数)
|
前端开发
Qt-QML-电子罗盘
使用QML中的Canvas实现电子罗盘绘制,效果图如下
310 0
Qt-QML-电子罗盘
Qt 在控件上面绘图 label,pushbutton。。。。。
最近有点时间,就研究研究Qt ,提升一下自己
265 0
Qt 在控件上面绘图 label,pushbutton。。。。。
4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(
 新建项目13IO 13IO.pro HEADERS += \     MyWidget.h   SOURCES += \     MyWidget.cpp   QT += gui widgets network CONFIG += C++11
2702 0
|
6月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
208 1
|
5月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
128 0
|
4月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
101 0
|
4月前