달력

52025  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

<< Previous


정확히 기억나지는 않지만 2000년 중반 쯤 QT를 잡지책에서 한번 읽었던 것 같다. 그때는 단순히 MFC와 비슷했던 Embedded GUI 라이브러리(?) 정도 였던 걸로 기억한다.


지금 다시 QT를 만나게 됐는데 버전이 5로 업그레이드 되어 있다. 그리고 단순 GUI 라이브러리가 아니라 멀티 크로스 플랫폼이 되어 있었다.


다시 말해 JVAV와 같이 WORA( Write Once, Run Anywhere 또는 Write once, compile anywhere )가 되어 있었다.


하나의 code로 windows에서도 Mac에서도 linux에서도 실행시킬 수 있으며( 물론 컴파일은 다시 해야 겠지만...), 심지어 QT로 Embedded 장비, iOS APP과 Android APP 도 만들 수 있다.


그렇다면 왜 갑자기 요즘들어 QT QML일까?

QT를 처음 들은 이후로 내 주위에서 실제 QT로 작업하던 사람을 본적이 없었다. 그리고 개발자 사이트도 그리 크지 않더라 QT란 것이 있다고 들은 이후로 한 동안 QT 소식을 듣지 못했기 때문에 사라진 플랫폼인줄 알았다. 헌데 요즘 QT의 QML을 공부중이다. 

요즘 전장( 자동차에 들어가는 전자장비의 줄임말 )쪽에서 QML을 많이 사용하기 시작했다고 한다.

전장장비를 사용하는 자동차에서 QML을 사용할 UI가 뭐가 있을까 생각하겠지만 운전하면서 가장 많이 보는 화면이 있다. 바로 계기판( Cluster ), 또는 Automotive HMI( 자동차에서 운전자가 차량의 정보나 상태를 파악하기 위해 탑재되는 차량용 인간-기계 접속장치 )를 모두 QT의 QML을 사용해서 작업하는 추세라 한다.


Next >>

Posted by 생짜
|

<< Previous


Qt GUI 프로그램 개발에 널리 쓰이는 크로스 플랫폼 프레임워크다.

Embedded Linux, Mac OS X, Windows, Linux, Android, QNX, MeeGo, WebOS, Symbian 등 다양한 플랫폼을 지원한다. 플랫폼에 종속적인 부분만 제외하면 소스코드 변경 없이 그대로 사용 할 수 있다.

서버용 콘솔과 명령 줄 도구와 같은 비 GUI 프로그램 개발에도 사용된다. 그래픽 사용자 인터페이스를 사용하는 경우에는 Qt를 위젯 툴킷으로 분류한다. Qt를 "cute"로 발음하고 있으며 비공식적으로는 "큐티"로 발음한다. Qt는 KDE, Qtopia, OPIE에 이용되고 있다,

Qt는 C++를 주로 사용하지만, 파이썬, 루비, C, 펄, 파스칼과도 연동된다. 수많은 플랫폼에서 동작하며, 상당히 좋은 국제화를 지원한다. SQL 데이터베이스 접근, XML 처리, 스레드 관리, 단일 크로스 플랫폼 파일 관리 API를 제공한다.



QML은 2010년 말에 출시된 QT4.7에 포함된 QtQuick에서 새롭게 소개되었다.
QtQuick은 'Qt Quick User Interface Creation Kit’ 의 약자로 Qt가 새롭게 소개하는 고급 UI 기술 프레임워크다.

이전에는 UI가 정적이고 정형화되어있었지만 요즘에는 큰화면과 터치스크린을 지원하는 디바이스들이 늘면서 UI에 대한 사용자들의 눈높이가 높아졌다. 이런 요구들을 만족시키기 위해 QtQuick 프레임워크가 태어난 것이다.


QtQuick은 에디터, 컴파일, 디버깅 툴인 Qt CreatorIDE, 동적인 사용자 정의형 UI를 생성할 수 있는 엔진과 C++을 사용하여 QML 어플리케이션을 확장할 수 있는 QtDeclarative 모듈, QML (Qt Meta-Object / ㅡMarkup Language) 로 구성되어 있다.

QtQuick을 사용하면 modern-looking한 UI를 전보다 쉽고 빠르게 설계 및 개발이 가능하다.

QML은 declarative 언어이며 인터프리터 언어로 JavaScrip가 확장된 스타일의 문법 구조를 가지고 있고 JavaScript와 같은 절차 언어를 해석하는 Declaative 모듈이 있다.

Declarative 모듈은 QML로 작성한 코드를 실행할 수 있는 어플리케이션으로 변환하는 작업을 한다. QML 내에서 C++ API를 사용할 수 있다;


QML은 마치 Class 처럼 객체를 나타내는 QML Object Type과 객체의 동작을 기술하는 Jaascript function, 속성인 property로 이루어 져있다.


QML은 HTML과 비슷한 마크업 언어이다.

UI를 프론트 엔드라고 하면 core 부분을 백엔드라 한다. 이를 통해 응용 프로그램의 UI 작업과 로직부부분을 분리할 수 있다.


QT 플랫폼을 사용하여 프로젝트를 진행한다면 프론트 엔드는 QML/JavaScript로 개발하여 시스템과 인터페이스 하고 백엔드 코드는 C++을 사용하여 개발할 수 있다.




Next >>



Posted by 생짜
|

스터디를 시작하기 전에 앞으로 배울 QT에 대해 간략하게 알고 시작하자.


QT

1991년에 '하버드 노드'와 '에이릭'이 '퀘이사 테크놀로지스(Quasar Technologies)'라는 회사를 시작으로 QT 개발을 시작.

후에 '트롤 테크(Troll Tech)', '트롤텍(Trolltech)'으로 회사명이 바뀌었으나 노키아에서 트롤텍을 인수,

2012년 'Digia'로 넘어갔다가 2014년 'The Qt Company'라는 이름으로 'Digia' 자회사로 독립했다.

QT 이름은 하버드의 이맥스 글꼴 중 Q라는 글자가 예뻐 보였고, t는 X 툴킷 Xt에서 따 와서 Qt라는 이름을 붙였다.


버전 1.45까지 Qt의 원본 코드는 FreeQt 라이선스로 공개되었으며 Qt 2.0이 나오면서 Q 퍼블릭 라이선스로 공개되었다.

Qt의 초기 버전은 유닉스용 Qt/X11, 윈도용 Qt/Windows 두 가지 플랫폼만 지원했다. 윈도용은 상업적 라이선스로만 사용할 수 있었다.
2001년 말 Qt 3.0이 나오면서 맥 OS X 지원이 추가되었다. Mac OS X 지원은 2003년 6월 Qt 3.2의 GPL 버전이 OS X을 지원하기 전까지는 상용으로만 사용할 수 있었다.

Qt/Windows 4가 2005년 6월 GPL로 공개 되었고 Qt 4부터는 상용 에디션과 오픈소스 에디션 간의 플랫폼 차이가 없다.


위키백과, QT

나무위키, QT


2016년 10월....난생 처음으로, 난데없이 QT Create 를 설치하고 QML 코딩을 시작했다.

이 날이 내가 QML을 QT를 처음 본 날이다.


Next >>

Posted by 생짜
|

한영키 전환 win7

karma( 업 ) 2016. 9. 20. 10:52

windows 7에서 'shift + space' 한영키 전환

1. 시작 > 실행 > 입력창에 regedit 입력 후 엔터?
 
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
 
3. 아래와 같이 값 설정

 LayerDriver JPN(REG_SZ) : kbd101.dll
 LayerDriver KOR(REG_SZ) : KBD101C.DLL  
 OverrideKeyboardIdentifier(REG_SZ) : PCAT_101AKEY  
 OverrideKeyboardSubtype(REG_DWORD) : 5 

 OverrideKeyboardType(REG_DWORD) : 8 


   
  * 원래의 값은 아래와 같습니다. 
  

 LayerDriver JPN(REG_SZ) :kbd101.dll
 LayerDriver KOR(REG_SZ) : kbd101a.dll
 OverrideKeyboardIdentifier(REG_SZ) : PCAT_101AKEY
 OverrideKeyboardType(REG_DWORD) : 3 
 OverrideKeyboardSubtype(REG_DWORD) : 8


 4. rebooting  

'karma( 업 )' 카테고리의 다른 글

git stash  (0) 2017.02.17
fixing .gitignore  (0) 2017.02.17
관리의 시작(1)  (0) 2016.07.19
리눅스 'll', 'la' 명령어 활성 방법  (0) 2016.07.14
Coding 잘하는 법  (0) 2016.06.03
Posted by 생짜
|

Endian Check

karma( 업 )/C_C++ 2016. 9. 12. 14:03

간단한 코드를 이용하여 시스템의 endian을 체크할 수 있다.


int num = 0x00000001


if( *((char*)&num)) // ((char*)&num)[0]

printf("Little Endian");

else 

printf("Big Endian"); 


&num :  num의 주소값을 가져온다.

(char*)&num : 가져온 num 의 주소값을 char형 주소값으로 형변환한다.

*((char*)&num) :  가져온 num의 주소값을 char형 주소값으로 형변환한 후 char 사이즈(1byte) 만큼 값을 가져온다.

[((char*)&num)[0] : 가져온 num의 주소값을 char형 주소값으로 형변환한 후 char  배열에서 인덱스 [0]의 값을 가져온다.]


num은 4byte의 int 변수로 num에 0x00000001 값은 Little Endian일 때는 

 01

00 

00 

00 

  

Big Endian 일 때는 

00 

 00

 00

 01

 로 저장된다.

*((char*)&num) 문장은 4byte인 num을 포인터 연산을 사용하여 1byte변수인 char형으로 형변환 시킨 후 char 사이즈만큼의 값을 가져와 비교하여 Little/Big Endian 여부를 판단한다.



'karma( 업 ) > C_C++' 카테고리의 다른 글

09. std::tuple( C++11로 가자 )  (0) 2018.11.01
02. 범위기반 for문( C++11으로 가자 )  (0) 2018.11.01
01. auto( C++11으로 가자 )  (0) 2018.11.01
01. C++11의 특징( C++11으로 가자 )  (0) 2018.11.01
C++11으로...  (0) 2018.11.01
Posted by 생짜
|

관리의 시작(1)

karma( 업 ) 2016. 7. 19. 09:29

관리의 시작관심이라고 생각한다.

관리의 1규칙.

관리의 1규칙은 관리는 정량적이어야 한다.
관심은 수치로 표현되지 않는 정성적인 부분이다.
수치로 표현되지 않으면 관리할 수 없다.
그렇기 때문에 일정관리에 스케쥴표가 있는 것이다.


관리의 2규칙.

관리의 2규칙으로 관리자는 부정적이든 긍정적이든 항상 답을 가지고 있어야 한다
관리자는 항상 상급자 또는 주위로부터 질문을 받는다.
관리자가 답을 가지고 있다는 이야기는 관리자는 관리대상에게 항상 관심을 가지고 일정과 목표치를 정량화하고 있다는 이야기다.


관리의 3규칙.

곤리의 3규칙으로 디테일해야 한다.
정량화의 세부내용으로 디테일이 있다. 디테일이 없으면 정량화는 성공할 수 없다.

'karma( 업 )' 카테고리의 다른 글

fixing .gitignore  (0) 2017.02.17
한영키 전환 win7  (0) 2016.09.20
리눅스 'll', 'la' 명령어 활성 방법  (0) 2016.07.14
Coding 잘하는 법  (0) 2016.06.03
임백준의 '대살개문' 야근은 미친짓이다.  (0) 2016.05.04
Posted by 생짜
|

Raspberry PI에서 python을 공부중에 아주 간단한 첫 번째 Python 프로그램을 만들었다.



아주 간단하여 주석 조차도 필요없을 정도이다.

첫 번째 파라메터로 받은 python 파일을 실행모드로 변환하고 입력받은 파일명에서 '.py' 확장자를 없애는 프로그램이다.


처음에는 쉘 스크립트로 만들려다 python을 이용해 만들어봤다.


사실 Computer Language의 문법을 공부하는 건 그리 어려운일이 아니다.

Computer Language라고 해봤자 변수, 제어문, 함수 사용법과 Language만의 독특한 문법만 외우면 그만이다.

이 몇 가지만 익히면 Language 공부는 끝이지만 그렇다고 프로그램을 바로 만들 수 있는 것은 아닐 것이다.

python을 익히고 있는 와중에 python을 가지고 무얼 만들어 볼까 고민중이다. 

Posted by 생짜
|

Raspberry Pi를 구입하고 Raspbian을 설치했다.

Raspbian에서 python을 학습중인데 python IDE를 사용하지 않고 python 파일을 실행시키려면

꼭 'python xxxx.py' 방식으로 해야 한다.


리눅스에서는 파일 최상단의 shebang(#!) 라인을 통해 Python을 먼저 불러내지 않고도 python 파일을 실행파일 형태로 바꿀 수 있다.

단계별로 따라해 보자


1. python 파일 최상단에 '#!/usr/bin/env python' 삽입하기




2. python 파일 실행모드 지정하기

   리눅스는 시스템을 보호하기 위해 새로 생성되는 파일에 실행파일 속성을 자동으로 부여하지 않는다. 

   chmod 명령어를 이용하여 해당 파일이 실행될 수 있는 프로그램이라는 속성을 지정해야 한다.



3. 실행





'karma( 업 ) > Python' 카테고리의 다른 글

제어문, 함수, 클래스의 끝은 ':'  (0) 2018.11.16
print 함수 줄바꿈 금지 인자 end=""  (0) 2018.11.16
Making a QML Application in Python  (0) 2018.07.06
PySide2 소개  (0) 2018.07.06
My First Python program  (1) 2016.07.14
Posted by 생짜
|

Raspberry Pi를 구입 후 SD Card를 이용해서 Raspbian을 설치했다.

'ls -l' command는 동작되는데 'll' 명령은 동작되지 않는다.


'll' command가 동작되기 위해서는 '.bashrc' 파일을 수정해 줘야 한다.


먼저 '.bashrc' 파일을 연다.


'.bashrc' 파일을 연후 아래부분을 수정/저장하면 'll' command를 사용할 수 있다.






'karma( 업 )' 카테고리의 다른 글

한영키 전환 win7  (0) 2016.09.20
관리의 시작(1)  (0) 2016.07.19
Coding 잘하는 법  (0) 2016.06.03
임백준의 '대살개문' 야근은 미친짓이다.  (0) 2016.05.04
Programming Language  (0) 2016.04.22
Posted by 생짜
|

Arduino Uno 모터제어 프로그래밍, 네이버 책 링크


이 책 재미있을 것 같다.


책소개

현재 모터의 응용분야는 가전기기, 의료장비, 자동차, 산업체의 자동화기기 등, 거의 모든 분야에서 활용이 되고 있으므로 모터를 설계하고 제어하는 기술은 너무나 중요하다고 할 수 있다. 본 교재에서는 모터의 구조 및 제어회로를 설계하고 만드는 기술을 다루는 것이 아니고 산업체에서 많이 사용이 되고 있는 모터를 보다 쉽게 제어하기 위한 아두이노 스케치 프로그래밍을 다룬다. 산업용 로봇의 정밀 작업에 사용되는 모터를 제어하기 위해서는 연산 속도가 빨라야 하므로 32비트 프로세서 이상이 되어야 하지만 본 교재에서 사용된 아두이노 우노 보드의 MCU는 8비트 이므로 한계가 있지만 모터제어 기술의 기초를 다지는데 많은 도움이 될 것이다. 




'karma( 업 ) > Electric Vehicle' 카테고리의 다른 글

전자/車 융복합 인재 육성  (0) 2016.06.14
모터제어  (0) 2016.06.14
Motor - DC/AC Motor  (0) 2016.06.03
낡은 디젤차 40만대 서울 못 다닌다.  (0) 2016.05.04
Posted by 생짜
|