압축파일 참조 Qt Mingw32bit 라이브러리 사용

QRCode.z01
10.00MB
QRCode.z02
10.00MB
QRCode.zip
2.05MB

요새 아키텍트에 꽂혀서 >_< 책을 미친듯이 찾아다니고있다.

그냥 회사 일하다가 코딩하다 피곤할때 틈틈히보고 쉬는시간에 보고 점심시간에보고 있는 수준이라

빨리 나가지는 않지만 이제 6년차를 바라보는 개발자로서 공감가는 부분이 되게 많아서

목록을 공유한다.

 

 

1. 클린코드 시리즈 - 로버트C. 마틴

2. 리팩토링 - 마틴 파울러

3. 구현 패턴 - 켄트 벡

4. 소프트웨어 장인 - 산드로 만쿠소

 

 

그외 내가 주력으로 삼는 언어는 C++이기에 덤으로..

Effective C++, Effective Modern C++(스콧 마이어스)

 

Effective시리즈는 다른언어 버전으로 많이 있으니 한번 찾아서 읽어보면 도움이 될것이다.

Effective시리즈는 언어에 대한 기본기를 갖춰주는 책들이라면

 

위쪽의 책들은 아키텍트와 마음가짐에 관한 책이다.

 

내가 비트에서 고급과정 수료하고 비트컴퓨터 회장님이 축하인사말을 할때 이런말을 들었다.

"지식은 나누면 커진다."

 

그래서 나누는것이다 ^^

 

축하 인삿말로 하시진 않았지만 이런 말씀도 자주하신댄다.

 

"십자가를 보면 중심에서 위보다 아래가 더 긴데 이것은 윗사람보다 아랫사람을 향해 더 많은 인맥을 쌓아야 한다는 것을 뜻하고, 왼쪽과 오른쪽이 같은 것은 균형감각을 유지하기 위해서는 자신과 뜻이 맞는 사람뿐만 아니라 뜻이 맞지 않는 사람도 똑같이 사귀어야 한다는 의미”

 

비록 비트교육센터에서의 1년은 무자비하고 스파르타식의 혹독한 시간(아침 9시 강의 시작 오후 6시 종료 밤12시까지 자습 - 밥먹는 시간빼고 해당 층 밖에 못나감 -ㅅ- (의무교육), 새벽에 집에서 공부(자율))이었지만 그분이 있었기에 내가 지금 이자리에 있나 싶다. 정말 고마운분이었다.

 

ps. 축사때 재미가없다는 것은 못한다는 뜻이라고 팩폭도 시전했다. 꼬우면 잘하라고하셨지... ㅋ 

 

//.pro

 

DEFINES += USE_FLAG=1 #띄어쓰기 금지

CONFIG += USE_FLAG

 

 

 

USE_FLAG{

TARGET = MY_APP_NAME

}

 

 

 

//.cpp or .h

 

#ifdef USE_FLAG

 printf("매크로 사용");

#endif

Sample.zip



압축파일 다운로드(DownLoad) 프로젝트(Project) 참조

외국의 어떤분이 좋은 글을 올려놔서 저장해둘겸 간단하게 설명해둔다. (중국인출신 MIT공대생 같은데 어떻게 읽어야 될지 모르겠음;;)



출처는 : https://github.com/dbzhang800/QtXlsxWriter

이며 해당 페이지에서 소스파일을 다운로드 가능하다.


사용법 (이 라이브러리의 라이센스는 LGPL 2.1이다 또는 상업용 라이브러리)

0. 사전준비 : Perl 윈도우즈 용을 받아 설치한다. (리눅스의 경우 qtbase5-private-dev + perl설치 필요)

1. 다운로드를 받아 압축을 Qt가 설치된 곳에 푼다

2. Qt용 MinGw32 콘솔 터미널을 연다

3. 압축풀린 폴더로 들어간다(정확히는 qxlsx폴더)

4. qmake 입력 후 엔터

5. mingw32-make 입력후 엔터 ( 리눅스의 경우 그냥 make)

6. mingw32-make install 입력후 엔터 (리눅스의 경우 그냥 make install)

7.  자신이 사용할 프로젝트에서 release folder에 있는  libQXlsx.a파일을 add lib의 external에 추가한다. 이때 .pro파일에 있는 헤더 경로를 컴파일한 헤더가 있는 경로로 잡아준다.

8.  자신이 필요한 컴포넌트를 Include한다.


예제(Example) //From GitHub Written By debao

  #include <QtXlsx>
    int main()
    {
        QXlsx::Document xlsx;
        xlsx.write("A1", "Hello Qt!");
        xlsx.saveAs("Test.xlsx");
        return 0;
    }


자세한 내용은 GitHub문서 참조


실행해보고 결과를 확인해보자.

주의사항 : Qt 5.x버전 이상에서 지원됨



//2020-02-13 수정


qxlsx만 복사한다음

그냥 .pro 파일에  

include(경로/QXlsx.pri)

입력해줘도 무방하다.

다만 컴파일시간이 길어져서 비추천




이거 한장으로 모든게 끝나긴 하지만 부가적인 설명을 적어둔다. 


1. getFunc의 경우 반드시 const 키워드를 필요로함.

2. QOBJECT를 상속하는 클래스에서만 가능하며 QT관련 매크로(ex. Q_OBJECT or Q_PROPERTY)의 경우 반드시 private구역에 선언되어 있어야 한다.

3. Property를 사용할경우 QObject의 상속계통의 커스터마이징 클래스를 사용할때 호환이 된다.

4. moc파일을 사용하므로 c++컴파일러 어디서든 동작한다.

5. Property에 사용한 변수명, 함수명, 키워드의 경우 실체가 없고 '선언' 만하는 것 이므로 구현부를 반드시 따로 정의해 주어야 한다.

6. Notify의 경우 무한루프가 되지 않도록 처리를 잘해야한다. (여기서는 emit 키워드로 시그널을 발생시킨다)



출처 : Qt 홈페이지 Document Page 

this->setStyleSheet("background-image: url(:/picture/image/title.png)");


위 그림과 같이 setstylesheet 호출 한 다음

 QString 형태로 입력해주면  예쁜 화면을 만들수있다.
url(내용) 부분의 경우에는 qrc(qt의 resource파일)에 추가된 주소값이다. (상대경로 prefix :/picture)  내부폴더명으로 image안에 있는 경로명에 저장된 이미지를 출력하였다. (물론 절대 경로도 얼마든지 가능하다)

스타일시트로 할 수 있는게  많다. 커스텀 위젯기능이라던가...


뭐 한줄요약하자면 UI에 CSS를 사용 할 수 있다는 뜻이다.

* 주의사항 : 스타일시트를 적용하면 자기 계통의 모든 자식객체에 적용된다.  메인 위젯에 사용할때 조심하자. (아니면 대상을 지정해서 쓰던가)

Qt에서는 C++크로스 플랫폼임에도 불과하고(write once, compile anywhere) JavaScript와 XML 그리고 안드로이드까지 지원한다

그중에서 Json이라는 일종의 Key+Value형태의 데이터 포맷을 지원하는데 이를 최근에 한번 공부겸 이것저것 뒤적뒤적해보고 있다.


우분투기준 별도로 libqt4-json(확실하지않음);  (apt-cache search로 검색하세요!) json라이브러리를 설치하면
아래 헤더를 선언해서 사용할 수 있게 되는데 


#include <qjson/parser.h>

이방법이 싫다면 .pro 파일에 

LIBS += -L/usr/lib/ -lqjson
INCLUDEPATH += /usr/include/qjson/

상단의 구문을 넣어주면 
#include <parser.h>

형태로 Path일부를 생략할 수 있다.
Json은 범용성이 넓으니 유용할 듯 하다.


아 참고로 Qt5.x 버전부터는


아예공식적으로 QJsonDocument 라고 해서 파서가 따로 존재한다.




'Qt' 카테고리의 다른 글

Qt 프로퍼티(Property)Example  (0) 2016.12.15
Qt에서 스타일 시트 쓰기  (0) 2016.12.15
Qt Window를 상단에 띄우는 옵션  (0) 2016.12.15
Qt에서 여백주고 싶을때  (0) 2016.12.15
Qt의 Drag&Drop Example  (0) 2016.11.17

setWindowFlags(Qt::WindowStaysOnTopHint);

QWidget 계열 상속라인에서 사용할수 있는 플래그입니다.
생성자에 사용하세요.



'Qt' 카테고리의 다른 글

Qt에서 스타일 시트 쓰기  (0) 2016.12.15
Qt4.8에서 Json Parser사용하기  (0) 2016.12.15
Qt에서 여백주고 싶을때  (0) 2016.12.15
Qt의 Drag&Drop Example  (0) 2016.11.17
QLineEdit에서 한글입력하기 우분투 14.04 (QT4.8기준)  (0) 2016.11.17

위젯에 
this->setStyleSheet("margin-left:3;");

스타일시트의 마진을 줘서 해결하면 됀다.

+ Recent posts