2014. 5. 30.

MAC User를 위한 Qt 사용팁

Mac 의 경우에는 Application 이 bundle 의 형태로 묶어져서 제공되기 때문에 Mac에서 개발 했을 경우 표준 I/O가 연계되지 않아서 불편한 경우가 있다.
해당 경우에는 다음과 같은 Tip을 사용하면, 일반 적인 standard I/O를 사용하는 Application을 제작할 수 있다.


mac {
   CONFIG -= app_bundle
}



# qmake -project
# qmake -spec macx-g++
# make


Multi-platform 에서 사용할 Common.pri

Qt의 가장 큰 장점은 Multi-platform용 Application을 제작할 수 있다는 점이다.
하지만 실질적으로 코드를 개발하다 보면 코드를 Qt로만 제작하는 경우는 거의 없고, 실제적으로는 Open Source 코드도 사용하게 되고, 다른 라이브러리도 포함하여 사용하게 된다.

그런 경우에 Windows 계열과 Unix 계열의 차이로 인하여 Project 파일을 수정해 주어야 하는데 반복적인 귀찮은 작업이므로, 다음과 같이 정리한다.


include (/path/to/wherever/common.pri)


# required if you want to see qDebug() messages
CONFIG += debug

# place auto-generated files in "invisible" subdirectories
win32{
   MOC_DIR = _moc
   UI_DIR = _ui
   OBJECTS_DIR = _obj
} else {
   MOC_DIR = .moc
   UI_DIR = .ui
   OBJECTS_DIR = .obj
}

# rules below apply to TEMPLATE=app projects only:
app{
   # place executable in same folder:
   destdir=$$OUT_PWD
   # don't place executables in an app bundle on mac os
   # this also permits console apps to work on the mac
   mac {
      CONFIG -= app_bundle
   }

   # Open a console for stdin, stdout, and stderr Windows:
   win32{
      config += console
   }
}



2014. 3. 30.

Ubuntu / Kubuntu 에서 간단하게 Qt 설치하기

블로그 글을 읽는 분들의 위치와 관심있어 하는 분야를 살펴보면
생각외로 (혹은 나의 관심 사항과는 상관없이)
'Qt 설치하기'가 항상 최고의 클릭수를 차지하고 있다.

무엇이든지 처음 시작하는게 제일 어려운 일인듯 하다.
오늘 쓰여질 글은
Ubuntu / Kubuntu 에서 간단하게 Qt 설치하기 이다.

Ubuntu는 이미 워낙 잘 알려져 있는 리눅스 배포판이니, 추가적으로 설명드릴 필요는 없을 것 같고 Kubuntu는 조금 설명드려야 할 것 같다.
Kubuntu는 KDE Ubuntu를 의미하는 Ubuntu와 동일한 Core를 가지는 데미안 리눅스이다.

차이가 있다면 Ubuntu는 Gnome을 기본 Desktop UI 환경을 가지는 리눅스 배포판이고, Kubutu는 KDE를 기본 Desktop UI 환경으로 가지는 리눅스 배포판인것이다.

Kubuntu = KDE + Ubuntu


물론 Ubuntu 설치해 놓고, Desktop UI 환경을 KDE로 변경하여 설치할 수도 있겠지만 필요없는 Gnome 환경들이 남아 있는 것이 마음에 거슬리고, 또 모든 것이 Qt Based로 구동되는 KDE에 비해 효율성이 떨어지는 것을 참기 힘드신 분들은 Kubuntu를 사용하시면 되겠다.

Ubuntu나 Kubuntu와 같은 데미안 계열의 배포판에서는 Application 설치를 위해서 aptitude 나 apt-get을 사용하는데 보통 다음과 같이 사용한다.

$ aptitude search "찾고 싶은 app"
$ sudo apt-get install "설치하고 싶은 app"

aptitude 가 설치 되어 있지 않는 경우에는

$ sudo apt-get install aptitude 

라고 하면 aptitude를 설치해 주는 식인것이다.

$ aptitude search qt

라고 입력하면 qt와 관련된 app들이 죽 나열된다.

$ aptitude search qt | grep qt4 

라고 하면 qt4에서 사용되는 경우만 필터링 된다.
필터링된 것들 중에 자신이 설치하고 싶은 app들을 다음과 같이 입력해 주면 된다.

$ sudo apt-get install build-essential 

여기서 build-essential 은 유닉스(리눅스) 개발자들이라면 반드시 설치하게될 모듈인데, 일반적으로 개발자들이 사용하게될 기본적인 필수 app등을 모아둔 일종의 Toolbox라고 보면 된다.
Qt도 유닉스 개발환경이기 때문에 위에 있는 build-essential을 설치해 주어야 한다.
그 외에는 다음과 같이 입력하면 설치 완료

$ sudo apt-get install qt4-dev-tools qt4-qmake libqt4-dev qimhangul-qt4

결과는 다음과 같이 진행된다.




Application에서 사용될 Icon Loading



Application의 Icon 로딩

QIcon을 App에 로딩시키기


요구조건:

Multi-platform 지원
Icon을 읽어들여 Application에서 사용할 수 있도록 한다.


Application에서 사용하는 Icon을 사용할 수 있는 방법은 

QApplication app(argc, argv);
app.setWindowIcon(QIcon(“:/res/ticon_256.png”));

하지만 Mac과 Windows의 경우에는 자체 Icon 형식을 가지고 있으므로, 다음과 같이 해당 OS의 형태에 맞도록 Application compile시 외부에서 로딩 하도록 해 주어야 한다. 

Windows:

RC 파일
         IDI_ICON1               ICON    DISCARDABLE     "myappico.ico"

myApplication.Pro 파일 내에서 다음과 같이 RC 파일을 포함 시켜 주어야 한다.

        RC_FILE = myapp.rc

MAC

myApplication.Pro file 내에서 다음과 같이 icon 파일을 포함시켜 주어야 한다.

        ICON = myapp.icns


Unix 계열의 경우에는 다음과 같이 처리한다.

setWindowIcon  사용 예제









2014. 3. 23.

Qt Cloud 서비스: Enginio

Qt 5.2.1 을 설치하다 보면, 다음과 같이 Qt Cloud Service를 선택하는 부분이 존재한다.

Qt Cloud Service Enginio

국내 개발자 중에 해당 서비스를 사용해 본 분이 있을까요?

추후 Qt Cloud Service Enginio에 관한 글도 계속하여 연재해보도록 하겠습니다.


Qt Multiplatform 개발 환경 구축을 위한 PATH / QMAKESPEC / QTDIR 설정하기



PATH / QMAKESPEC / QTDIR 설정하기


Qt로 개발환경을 결정하는 개발자의 가장 큰 이유는 아마 Multi-platform 일것이다.
내가 익숙하게 사용하는 개발 환경에서 한번만 개발 해두면 다양한 여러 환경에서 동작하는 Application을 만들 수 있다는 것은 대단한 장점이다.

Multi-Platform 사용시 자주 사용하는 환경변수는 PATH / QMAKESPEC / QTDIR 의 3가지 인데 3가지 변수만 잘 변경시켜 주면 컴파일시 큰 어려움없이 개발을 진행할 수 있다.

PATH

qmake나 Multi-platform에서 사용될 컴파일러, Toolchain들을 실행시킬 수 있는 변수들을 지정해 주어야 하며 다른 개발툴들의 Path 지정 방법과 동일하다.

QMAKESPEC

이 부분이 Qt를 사용하지 않았던 모글들이 가장 어려워하는 부분일 수 있는데 쉽게 설명하자면 특정 Platform에서 사용될 컴파일러 위치 및 Qt library 위치를 저장하고 관리하는 폴더이다. 보통 다음의 그림 이미지에서처럼 Qt Creator에서 관리되고 있다.

QTDIR

Qt 사용자중에서 작은 footprint를 원하는 개발자들이나 embedded 개발환경 Legacy library들을 사용하고자 하는 개발자들은 4.8.x 대를
iOS 개발환경이나 Android 개발 환경 혹은 QML을 사용하여 개발을 하고자하는 개발자들은 5.2.x 대의 개발환경을 사용하는 것 같다.
이와 같은 자신이 사용할 Qt 의 위치를 지정하는 환경변수이다.
5.2.1 버전에서는 다음과 같이 android_armv5 / android_armv7 / ios 지원용 폴더들이 추가되어 있다.




사용예제


Mac 개발 환경

export QTDIR=/Users/$USER/Qt/5.2.1/
export PATH=$QTDIR/clang_64/bin:$PATH

Unix(Linux) 개발 환경

export QTDIR = /usr/local/qt
export QMAKESPEC=/usr/local/qt/mkspecs/linux-g++
export PATH=$QTDIR/bin:$PATH

Windows 개발 환경


QTDIR = P:\QT\4.7.0
PATH = %QTDIR%\bin
QMAKESPEC=%QTDIR%\mkspecs\win32-msvc2005