我想实现随意点击ppc按钮,胸环靶按钮,半身靶按钮这三个按钮实现靶型图切换,源码如下:只能切换一次,之后点击任何按钮,图片都不在变化,请高手指教!不胜感激!!!
!!
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QPainter> //sunny 画图
#include <QPoint>
#include <QDebug>
#include <QBrush>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
resize(900,680);
serial_init();
}
void MainWindow::serial_init()
{
time1= new QTimer(this);
time1->start(100);
//serial1 = new Win_QextSerialPort("com1",QextSerialBase::EventDriven); //create com1 and set
serial1 = new Win_QextSerialPort("com1",QextSerialBase::Polling);
serial1->open(QIODevice::ReadWrite);
serial1->setBaudRate(BAUD115200);
serial1->setDataBits(DATA_8);
serial1->setFlowControl(FLOW_OFF);
serial1->setParity(PAR_NONE);
serial1->setStopBits(STOP_1);
serial1->setTimeout(100);
// connect(serial1,SIGNAL(readyRead()),this,SLOT(readserial1()));
connect(time1,SIGNAL(timeout()),this,SLOT(readserial1()));
}
MainWindow::~MainWindow()
{
delete ui;
delete serial1;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::paintEvent(QPaintEvent *) //sunny 加载靶型图
{
QPainter painter(this);
pix.load("GPU.bmp");
painter.drawPixmap(340,50,520,503,pix);
/*
QPainter painter1(&pix);
painter1.drawEllipse(10,10,50,50);
painter1.drawEllipse(180,200,5,5);
painter.drawPixmap(310,50,503,503,pix);
QPainter p(this);
QBrush brush;
brush.setColor(Qt::red);
p.setBrush(brush);
p.drawEllipse(450,300,5,5);
*/
}
void MainWindow::mousePressEvent(QMouseEvent *event)
{
qDebug() << event->pos();
}
void MainWindow::readserial1()
{
//qDebug() << "read:" <<serial1->bytesAvailable()<<"bytes";
QByteArray temp =serial1->read(12); //读取串口缓冲区的所有数据给临时变量temp
int num=temp.size();
qDebug() << "size:" << num ;
ui->lineEdit_danwei->insert(temp.toHex());
qDebug()<<temp.data()[0];
qDebug()<<temp.data()[0]<<temp.toHex().data()[15];
if(temp.data()[0]==0xa1&&temp.data()[1]==0xc9)
{
if(temp.data()[3]==0x01) //name
{
ui->lineEdit_name->insert(&temp.toHex().data()[5]);
ui->lineEdit_name->insert(&temp.toHex().data()[6]);
ui->lineEdit_name->insert(&temp.toHex().data()[7]);
ui->lineEdit_name->insert(&temp.toHex().data()[8]);
}
if(temp.data()[3]==0x02)//sex
{
ui->lineEdit_name->insert(&temp.toHex().data()[5]);
ui->lineEdit_name->insert(&temp.toHex().data()[6]);
ui->lineEdit_name->insert(&temp.toHex().data()[7]);
ui->lineEdit_name->insert(&temp.toHex().data()[8]);
}
if(temp.data()[3]==0x03) //age
{
ui->lineEdit_name->insert(&temp.toHex().data()[5]);
ui->lineEdit_name->insert(&temp.toHex().data()[6]);
ui->lineEdit_name->insert(&temp.toHex().data()[7]);
ui->lineEdit_name->insert(&temp.toHex().data()[8]);
}
if(temp.data()[3]==0x04)//num_jing
{
ui->lineEdit_name->insert(&temp.toHex().data()[5]);
ui->lineEdit_name->insert(&temp.toHex().data()[6]);
ui->lineEdit_name->insert(&temp.toHex().data()[7]);
ui->lineEdit_name->insert(&temp.toHex().data()[8]);
}
if(temp.data()[3]==0x05) //danwei
{
ui->lineEdit_name->insert(&temp.toHex().data()[5]);
ui->lineEdit_name->insert(&temp.toHex().data()[6]);
ui->lineEdit_name->insert(&temp.toHex().data()[7]);
ui->lineEdit_name->insert(&temp.toHex().data()[8]);
}
}
else
if(temp.data()[0]==0x51&&temp.toHex().data()[1]==0x39)
{
}
/* 添加判断代码 在界面的相应位置显示相关信息 */
}
void MainWindow::on_pushButton_mode_clicked()
{
mod.show();
}
void MainWindow::on_pushButton_distance_clicked()
{
dis.show();
}
void MainWindow::on_pushButton_recond_clicked()
{
rec.show();
//display recond infor
}
void MainWindow::on_pushButton_res_clicked()
{
}
void MainWindow::on_pushButton_save_clicked()
{
serial1->write(ui->lineEdit->text().toAscii());
}
void MainWindow::on_pushButton_cancel_clicked()
{
close();
}
void MainWindow::on_pushButton_banshen_clicked()
{
pix.load("bs500dy.bmp");
update();
}
void MainWindow::on_pushButton_xiong_clicked()
{
pix.load("xh500dy.bmp");
update();
}
void MainWindow::on_pushButton_ppc_clicked()
{
pix.load("PB-27dy.bmp");
update();
}
[ 此帖被2003wanglian在2011-01-17 16:58重新编辑 ]