因为要画一个坐标系 并且接收下位机显示坐标,由于暂时缺乏一些知识,姑且想到点、线、圆来代替。
首先建立工程
this->setMaximumWidth(1000);
this->setMinimumWidth(1000);
this->setMinimumHeight(800);
this->setMaximumHeight(800);
QTimer *timer = new QTimer(this);
QTimer *timer1 = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update())); //当定时器更新 界面更新
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTimer>
#include <QPainter>
#include <QLabel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void paintEvent(QPaintEvent *);
QLabel * Label=new QLabel(this);
QFont *ft=new QFont() ;
private:
Ui::MainWindow *ui;
private slots:
void pdate1();
};
#endif // MAINWINDOW_H
界面显示主要代码
void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
static int b=0;
int i=0;
char xy[25];
painter.setPen(Qt::red);
for(i=1;i<=35;i++)
{
painter.drawLine(20,20*i,700,20*i);//画直线
painter.drawLine(20*i,20,20*i,700);//画直线
}
painter.setPen(Qt::blue);//设置画笔形式
painter.drawEllipse(20+b,20+0.5*b,10,10);//画圆
painter.setFont(QFont("q", 6));
painter.drawText(20+b,20+0.5*b, "ID:245543");
sprintf(xy,"%s%0.2f%c%.2f%c","xy(",(20+b)*1.0,',',20+0.5*b,')');
painter.drawText(20+b,30+0.5*b,xy);
b++;
}