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

📄 draw.cpp

📁 qT编程的例子 非常适合初学者 和在linux下开发图形界面的
💻 CPP
字号:
#include <qapplication.h>
#include <qwidget.h>
#include <qpainter.h>
#include <qbrush.h>
#include <math.h>
#include <qdatetime.h>
#include <qlcdnumber.h> 

#include <cv.h>
#include <highgui.h>
#include <math.h>

#include <stdio.h>
#include <string.h>
#include <fcntl.h>      // open() close()
#include <unistd.h> 
#include <stdlib.h>

#define DEVICE_NAME "/dev/adc"
#define R_point 50


QLCDNumber *lcd1;
int speed =0;
static int pp = 0;
int x1=1;
int ii=1;
int display_y2[201];
int display_y1[201];


int fd;
unsigned short data = 0;

class DrawDemo:public QWidget
{
public:
    DrawDemo( QWidget *parent=0, const char *name=0 );
    void paintEvent( QPaintEvent *);
    void timerEvent( QTimerEvent *);
private:
    void drawPrimitives( QPainter *p );
};

DrawDemo::DrawDemo( QWidget *parent, const char *name):QWidget(parent, name)
{
    QLCDNumber *lcd  = new QLCDNumber( 4, this, "lcd" );
    
    lcd1=lcd;
    lcd1->setGeometry(95,250,50,25); 
  
    startTimer(500);
    setBackgroundColor(black);
}
void DrawDemo::timerEvent( QTimerEvent *q)
{
    update();
    ii++;

}
void DrawDemo::drawPrimitives(QPainter *p)
{
 
   
    QBrush b1( Qt::red );



    p->setPen( Qt::red ); 
 
    p->setBrush( b1 );
    /////////////////////////////////////////////////////////////////////
    for (int oo=200;oo>0;oo--)
    {

        display_y1[oo]= display_y1[oo-1];
        display_y2[oo]= display_y2[oo-1];
     }

    display_y1[0]  =(int)(50+50*sin(2*3.1415/100*(ii)));
   display_y2[0]  =(int)(50+50*cos(2*3.1415/100*(ii)));
//        read(fd, &data, 2);
 //       display_y1[0]  = data*200/0x3ff;
     //   display_y2[0]  = data*200/0x3ff;
    for(x1=1;x1<200;x1++)
    {

    //     p->drawPoint( x1,display_y2[x1] );
    //     p->drawPoint( x1,display_y1[x1] );
            p->drawLine( x1, display_y2[x1], x1+1, display_y2[x1+1] );
            p->drawLine( x1, display_y1[x1], x1+1, display_y1[x1+1] );
    }
    if(ii>200)   ii=1;
    ////////////////////////////////////////////////////////////////////
    QString clockT = QString::number( (int)speed, 10 );
    speed ++;
    lcd1->display(clockT);
 
}
void DrawDemo::paintEvent( QPaintEvent *)
{
    QPainter paint(this);
   
    
    
    drawPrimitives(&paint);
}

int main(int argc, char **argv)
{

 /*   printf("\nstart adc_driver test\n\n");
    fd = open(DEVICE_NAME, O_RDWR);
    printf("fd = %d\n",fd);
    
    
    if (fd == -1)
    {
            printf("open device %s error\n",DEVICE_NAME);
    }
    else
    {

            read(fd, &data, 2);
            printf("adc = %d\n", data);
            sleep(2);
     } */
    IplImage *src = 0;
    src = cvLoadImage("./pic/3_message.png");


    QApplication app(argc, argv);
    
    DrawDemo drawdemo;
    drawdemo.resize( 240, 320 );
    drawdemo.setCaption( "我们CAR PANEL");

    app.setMainWidget(&drawdemo);
    drawdemo.show();

    return app.exec();
}

⌨️ 快捷键说明

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