1월, 2012의 게시물 표시

ThinQt

지난번 올렸던 Qt/Thin 함께 돌리는 예제를 간단히 만들어 보았습니다. 프로그램은 qt_kendo.rb와 rad_info.rb 두가지로 나뉘어 있으며 qt_kendo.rb에서는 eventmachine의 run loop에서 Qt의 app.process_events 함수를 0.02초 간격으로 호출하며 동시에 Thin 서버를 돌립니다. Qt 프로그램은 간단한 리스트 위젯 몇가지와 버튼 그리고 Webkit 위젯으로 이루어져 있으며 Webkit 위젯에서는 kendoui 라는 자바스크립트를 통해 localhost의 thin 서버에 접속해서 필요한 자료를 json 형태로 받아옵니다. rad_info.rb 프로그램은 사용자화 할 수 있는 프로그램으로 types, query, sub_query, all_query 함수를 가지는 class를 작성하고 QtKendo.run 함수에 class를 전달하면 됩니다. 제가 작성한 것은 sequel을 사용해서 소스와 같은 디렉토리의 sqlite 데이터베이스를 처리하는 것입니다만, 자료는 이런 저런 이유로 생략했습니다. 소스는 github 에서 받을 수 있습니다.

Qt, Thin, Sequel이 만났을때...

이미지
지난번 Eventmachine과 Qt를 함께 돌리는 방법을 알아낸 다음 자료를 적절히 가공한 다음 QtWebkit에서 그래프로 보여주는 방법이 없을까 고민을 하게 되었습니다. 아직 완전히지는 않지만 하나의 어플리케이션으로 Eventmachine을 이용한 웹서버인 Thin을 돌리면서, QtWebkit에 kendoui 라는 자바스크립트를 올려 Thin에 접속한 다음 json 형식의 자료를 얻어와서 그래프를 그리는데 성공하였습니다. 다음은 어플이 돌아가고 있는 화면... Eventmachine에 기반한 Thin과 Qt는 생각보다 간단하게 돌아가는데 kendoui에서 json 포맷을 받아서 띄우는게 힘들었습니다. Access-Control-Allow-Origin이란 어려운 헤더를 건드려야 하더군요. 아직 원하는 기능이 완전히 돌아가지는 않는데 조금 더 손보면 그럭저럭 쓸만한 데모 어플이 되지 않을까... 하는 생각을 해 봅니다.