최근에 QT 를 사용하게 될 일이 있어서 이에 대해서 기록차 글을 한번 끄적 거려 봅니당

 

web 쪽 QA를 하고 있다보니 우리 제품으로 제작된 페이지가 잘 구동되는지에 대해서 검증을 하게 됩니다.

 

IE( 10, 11 )  , Chrome, FireFox 최근에는 Safari 도 추가하려는 움직임이 스물스물 

 

하지만 이번에는 조금 특이한 케이스가 있었습니다.  제품을 구매하는 고객사에서는 webView를 사용하여 

 

모든 프로그램들이 구동이 되는 환경 인것 이였습니다! 그렇기 때문에 우리도 그에 맞춰서 우리의 제품 들

 

또는 QA에서 제작되어있는 페이지들이 정상적으로 구동이 되는지를 확인 해보아야 합니다.

 

WebView의 경우는  webkit이라는 엔진을 사용하기 때문에 Chrome이랑 같겠지! 라고 생각 하면 오산입니다.

 

어찌됐든 C++프로그램에 올라가는 형태로 진행이 되는 것 이기 때문에 어떠한 동작에 대해서는 다른 결과를

 

가져올수 있기 때문입니다.

대표적으로 webView에서는 openWindow가 되지않습니다.

정정합니당 Default Settings으로 webView에서 openWindow가 되지않습니다.

탭을 하나 새로 켜야하지만 C++ 프로그램에서는 없을 수 있기 때문이죠

 

재빠르게 QA가 만들어놓은 페이지를 검증 후 우리회사의 제품 을 검증해야 하는데 처음 하게되는 제품에 대해서는

 

빠르게 체크리스트를 작성하여 Pass, Fail 을 기록 하여 전달하는 것이 업무 전달에 조금 빠르게 진행 할수 있을

 

거라고 생각 하였습니다.

 

하지만 사용해야 하는 버전은 5.9.X 버전 qt 코드 작성 예시를 찾다 보면 webView의 코드가 단순하게 나와있습니다.

 

(QT를 설치하는 작업은 생략 하였습니다. 단순하게 

 

Main.cpp

#include <QtGui>
#include <QtWebKit>

int main(int argc, char** argv) {
    QApplication app(argc, argv);
    QWebView view;
    view.show();
    view.setUrl(QUrl("http://google.com"));
    return app.exec();
}

Main.pro

QT += webkit
SOURCES = example.cpp

 

이와 같이 말이죠  이렇게 한번에 된다면 정말 좋겠지 만요 QT는 5.5 이후로 webView가 빠져있습니다. 

 

두둥... 그렇습니다. qmake 사용시 Unkown Module(s) webkit 을 보게 됩니다.

 

5.9 버전에서는 webView가 없기 때문에 마찬가지로 QTCreator에서도 WebView는 존재하지 않습니다.

 

그래서 동작하지 않게 되는데 webkit을 깔거나 이것저것 여러가지 시도를 해보았지만 webkit을 따로 붙이는 작업을

 

하다가 더 빨리 웹뷰를 띄워야 한다는 요청이 있었어서  5.9.X Documentation QT를 들어가서 확인해 보니 

 

webEngine을 이용한 방법이 있었습니다.

 

Main.cpp

#include <QWebEngineView>
#include <QApplication>
#include <QUrl>

int main(int argc, char ** argv){
	
    QApplication app(argc,argv);
    
    QWebEngineView *view = new QWebEngineView();
    view->setZoomFactor(0.7); // 배율 조정 API 테스트 를 편하게 하기 위해 추가
    view->load(Qurl("테스트 url"));
    view->show();
    
    
    return app.exec();
}

MainSample.pro

QT += webenginewidgets widgets core gui

... 

실행 결과

 

 

** 포스팅에서 제외된 부분 

필요한 Module들에 대한 에러 메시지가 나타날 경우 해당 관련 제품들을 설치 하였습니다.

 

감사합니다.

 

+ Recent posts