📄 draw.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 + -