标签:
qt的关键在于信号与槽机制。
1. 利用qtcreator 创建 qt widgeets application 工程
main.cpp mainwindow.cpp mainwindow.h 文件 .ui 界面设计文件
#include "mainwindow.h"
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
QApplication MainWindow a.exec()
2. 打开 mainwindows.ui 界面文件设计界面: 添加一个label 显示图片
3. 编译一次,则会在build文件夹下生成 ui_ mainawindows.cpp文件。界面相关的ui 类
QLabel *labelImage;
4 mainwindow.h 文件的书写
1) 相应的成员与成员函数
QImage qimg;
QPixmap pm;
cv::Mat img_test;
int id1,id2,id3;
CameraEstimation* pCam_qr_estimation ;
void init(char* addr,int camId);
QImage Mat2QImage(cv::Mat const& src) ;
cv::Mat QImage2Mat(QImage const& src) ;
protected:
void timerEvent(QTimerEvent *event);signals:
void imageReady(); 3) 槽函数 void imgShow();4 mainwindow.cpp 文件的书写
1) 关联信号与槽函数 QObject::connect
ui->setupUi(this); //ui启动 // 开启一个1秒定时器,返回其ID id1 = startTimer(50); QObject::connect(this,&MainWindow::imageReady,this,&MainWindow::imgShow);
emit imageReady();定时事件触发释放信号
void MainWindow::timerEvent(QTimerEvent *event)
{
// 判断是哪个定时器
if(event->timerId() == id1)
{
qDebug() << "timer1";
pCam_qr_estimation->run(); //opencv一些列的操作
pCam_qr_estimation->pQrDetect_->t_[0];
qimg = Mat2QImage(pCam_qr_estimation->frame);
img_test = QImage2Mat(qimg);
emit imageReady();
}
else
{
qDebug() << "timer erro";
}
} 3) 槽函数的实现:在 labelImage 中显示图片。void MainWindow::imgShow()
{
//qimg.load("/home/yhzhao/Desktop/12.png");
ui->labelImage->setPixmap(QPixmap::fromImage(qimg));
qDebug()<<"Tigger";
}
5) 工程有缩略,运行结果如下图。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/zyh821351004/article/details/46654143