Programming/QT

Programming/QT

[QT] Windows에서 QOCI (Oricle DB) Driver 빌드

[Programming/QT] - [QT] CentOS 7 환경에서 QOCI (Oracle DB) Driver 빌드 [QT] CentOS 7 환경에서 QOCI (Oracle DB) Driver 빌드 필수 환경 QT 설치 QT 공식홈페이지 에서 QT를 다운로드 받아 설치한다. 설치 과정 중 필수로 Source 를 선택하여 QT소스코드가 함께 설치되도록한다. 본 게시글에서는 QT 5.9.1 버전을 사용한다. 설치 blog.rixa.kr 이전 포스팅에서는, QOCI 드라이버의 빌드를 CentOS 7 환경에서 진행하는 것으로 작성하였다. 이번 포스팅에서는 Windows에서 QOCI 빌드를 하는 법을 설명하려 한다. 필수 환경 QT 설치 QT 공식홈페이지 에서 QT를 다운로드 받아 설치한다. 설치 과정 중 필수로..

Programming/QT

[QT] QOCI를 이용한 CLOB 데이터 insert중 ORA-03113 (EOF) 오류 발생 대처법

오류 발생 긴 길이의 QString 데이터를 CLOB column에 insert 하자, ORA-03113 "end of file on communication channel" 오류가 발생하였다. Master Note: Troubleshooting ORA-03113 Master Note: Troubleshooting ORA-03113 (Doc ID 1506805.1) Last updated on MARCH 12, 2021 Applies to: Oracle Database Exadata Express Cloud Service - Version N/A and later Oracle Database Cloud Service - Version N/A and later Oracle Database - Enterpr..

Programming/QT

[QT] CentOS 7 환경에서 QOCI (Oracle DB) Driver 빌드

필수 환경 QT 설치 QT 공식홈페이지 에서 QT를 다운로드 받아 설치한다. 설치 과정 중 필수로 Source 를 선택하여 QT소스코드가 함께 설치되도록한다. 본 게시글에서는 QT 5.9.1 버전을 사용한다. 설치 경로는 /opt/Qt5.9.1 이다. Oracle SDK Oracle Instant Client 에서 Oracle Instant Client를 다운받는다. Basic Package (ZIP) SDK Package (ZIP) 본 게시글에서는 21.1.0.0.0 버전을 사용하였다. Basic Package는 /opt/instantclient, SDK Package 는 opt/instantclient/sdk 에 압축 해제 하였다. 빌드 OCI의 소스코드가 위치한 경로로 이동한다. cd /opt/Qt..

Programming/QT

[QT] static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE

QT를 이용하여, 개발을 하다 보면 자주 만나는 메시지다. QVariant와 같은 QT에 미리 지정된 템플릿 클래스를 이용하다 보면 위와 같은 에러 메시지를 종 종 볼 수 있는데, 사용자 정의 클래스/타입이 미리 선언되어있지 않아 발생하는 오류다. enum ENUM_TYPE { ENUM_1, ENUM_2 } QVariant v; v.value(); // 에러 이는 헤더 파일에 Q_DECLARE_METATYPE(TypeName) 과 같이 작성하면 해당 문제는 해결된다. enum ENUM_TYPE { ENUM_1, ENUM_2 } Q_DECLARE_METATYPE(FSStatus); QVariant v; v.value();

Programming/QT

[QT] C++ std::string과 QString 간의 문자열 형 변환 방법

개요 QT C++로 프로그램을 작성하면, 타 라이브러리와의 연동을 위해 std::string 을 QString으로 변환하거나, 그 반대를 수행해야 하는 경우가 잦다. 이를 해결하기 위한 방법은 다음과 같다. std::string -> QString QString의 함수 이용 QString은 std::string을 QString으로 변환해주는 함수 QString::fromStdString 함수를 제공한다 사용 예시 std::string str ="Hello, World!"; QString qstr = QString::fromStdString(str); 위의 방법을 사용하면 손쉽게 형 변환이 가능하다. string pointer 이용 std::string을 QString으로 변경하기 위한, char 배열로 ..

Programming/QT

[QT] QObject::connect: Cannot queue arguments of type 'Type Name'

QT 개발을 하던 도중, 특정 클래스를 인자로 사용하는 signal/slot을 생성하고, Connect를 할 경우 QObject::connect: Cannot queue arguments of type 'Type Name' 메시지가 출력될 때가 있다. 이러한 부분은, QT에 해당 class의 meta type이 추가되지 않아 발생하는 현상으로, 아래와 같은 코드를 추가하여 해결할 수 있다. qRegisterMetaType("CMultiTrackMini");

Programming/QT

[QT] QByteArray를 QJsonValue로 변환하기

앞서 포스팅한 DockWidget의 상태 정보를 저장하기 위해 Geometry 정보 및 state를 Json File에 기록하기 위한 시도를 진행했다. 2019/05/14 - [Programming/QT] - [QT] QDockWidget의 위치 및 상태 저장 [QT] QDockWidget의 위치 및 상태 저장 본 문서는 QDockwidget을 이용하여 프로그램을 개발하던 중, 프로그램을 재시작 하였을 때 현재 설정된 DockWidget의 상태(현시여부, 도킹위치, 크기 등)를 저장하고 불러오는 방법에 대해 리서치 및 시도한 것들.. blog.rixa.kr 결과적으로는, QJsonValue에 ByteArray를 그대로 집어넣는것은 작동하지 않으며, Base64와 같은 방식으로 인코딩한 뒤 기록을 해야한다..

Programming/QT

[QT] QDockWidget의 위치 및 상태 저장

본 문서는 QDockwidget을 이용하여 프로그램을 개발하던 중, 프로그램을 재시작 하였을 때 현재 설정된 DockWidget의 상태(현시여부, 도킹위치, 크기 등)를 저장하고 불러오는 방법에 대해 리서치 및 시도한 것들을 정리하여 기록한 문서다. Document 및 웹 서칭을 통해서 시도해본 것들은 다음과 같다. 첫번째로 QDockWidget의 saveGeometry(), restoreGeometry() 메서드를 이용, Geometry정보를 지정하여 DockWidget의 위치를 조절하는 방식이다. 위와 같은 방식으로 처리를 하였으나, geometry 는 x, y, width, height 정보만을 저장하고 있으며, 도킹된 위치나 show/hide여부 등을 처리하지 못한다는 문제점이 존재한다. 이를 해..

후유증
'Programming/QT' 카테고리의 글 목록