您现在的位置是:网站首页> C/C++

Qt Creator添加第三方头文件和类库(经验篇)

  • C/C++
  • 2021-10-23
  • 1113人已阅读
摘要

Qt Creator添加第三方头文件和类库

在Qt Creator的项目中添加头文件和库


最近的项目用到工业线阵相机,需要利用沟通相机,开发出独立的成像软件,所以才有了对于qt中添加sdk中的一些类库的需求

在Qt Creator的项目中添加头文件和库

在Qt工程中,通过.pro文件对链接库进行管理,就像VS中的包含目录、库目录一样,对于其他第三方库的添加,本质上与调用opencv库是一致的。


1、添加额外需要的头文件目录

类似添加opencv中的include路径


INCLUDEPATH += C:\opencv420\build\include

INCLUDEPATH += C:\opencv420\build\include\opencv2


这是我添加的相机sdk头文件的路径


INCLUDEPATH += H:\QtProject\Camera_v2\Include

INCLUDEPATH += H:\QtProject\Camera_v2\Classes\Basic


2、添加额外需要连接的链接库

同样类比添加opencv的内容


LIBS +=-LC:\opencv420\build\x64\vc14\lib -lopencv_world420d


我把所用到的文件放在了工程目录下是为了和项目组其他同学沟通整合项目时,可以把项目整个发给他方便使用而不用重新搞环境


LIBS +=-LH:\QtProject\Camera_v2\Lib\Win64 -lSapClassBasic

INCLUDEPATH += $$PWD/../QtProject/Camera_v2/Lib/Win64



至此就可以正常的包含sdk中的头文件进行使用了。记得添加完上面这些内容后先重新构建 qmake一下。


这是沟通相机连接成像的头文件


#ifndef WIDGET_H

#define WIDGET_H

#pragma warning(disable:4996)

#include <QWidget>

#include "SapClassBasic.h"

#include <iostream>

#include <fstream>

#include<string>

#include<time.h>

#include <stdlib.h>

#include <opencv2/opencv.hpp>

#include "opencv2/core/core.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include <opencv2\imgproc\types_c.h>

#include <opencv2/highgui/highgui_c.h>

#include<QDebug>

#include<QImage>

#include<vector>

using namespace cv;

using namespace std;


namespace Ui {

class Widget;

}


class Widget : public QWidget

{

    Q_OBJECT


public:

    explicit Widget(QWidget *parent = nullptr);

    ~Widget();


    SapAcqDevice *m_pAcqDevice;//使用的相机sdk中的类

    SapView         *m_pView;

    SapBuffer       *m_pBuffer;

    SapTransfer     *m_pTransfer;


    static void XferCallback(SapXferCallbackInfo *pInfo);

    void ShowImage(Mat img);

    Mat convertTo3Channels(const Mat& binImg);

    Mat sixteen2eight(Mat img);

    void showHis(Mat img, Mat &HI);

    void HIS(Mat img);

    int fun(int a[], int n);

private slots:

    void on_Linecamera_clicked();


    void on_Grab_clicked();


    void on_EndGrab_clicked();


    void on_SaveImage_clicked(Mat &img);


private:

    Ui::Widget *ui;

};


#endif // WIDGET_H```




Top