글

라벨이 qt인 게시물 표시

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이란 어려운 헤더를 건드려야 하더군요. 아직 원하는 기능이 완전히 돌아가지는 않는데 조금 더 손보면 그럭저럭 쓸만한 데모 어플이 되지 않을까... 하는 생각을 해 봅니다.

Qt와 EventMachine 함께 사용하기

이미지
StackOverflow에 올라와 있는 팁 입니다. Qt에서는 Application.run으로 루프가 돌아가고 EventMachine에서는 EM.run에서 루프가 돌아가니 두가지 함께 쓰기가 불가능할줄 알았는데 Qt에서 이런 경우에 대비해 Application.process_events 함수를 제공하는군요. EventMachine의 echo server예제와 함께 묶어 보았습니다.

Qt Ruby Webkit 시험

이미지
Qt의 예제들을 보니 실제 프로그램의 많은 것들을 지원하지만 결국 native framework가 지원해주는 정도의 자유(그 정도 level이 되는 것도 아니고 그 정도 기능을 필요로 할지도 모르겠지만...)는 없는 것 같아서 HTML과 javascript를 Qt내에 포함시키고 system tray 정도 기능을 Qt로 구현하면 어떨까... 하는 생각을 하게 되었습니다. 아마 공부해야 할게 더 많고 더 복잡하겠지만 왠지 이쪽으로 가는게 앞으로 유용하게 쓸수 있을것 같기 때문입니다. Webkit을 간단히 Qt 내부에 포함시켜 화면에 보여주는 스크립트입니다. 추가로 뒷 배경이 살짝 보이는 transparency, 항상 위에 보이게 하는 것과 윈도우의 가장자리는 없애는 옵션을 넣어보았습니다. Qt도 역사가 있다 보니 transparency를 지원하는 api도 여러가지 방법이 있는것 같습니다. 일단 가장 간단한 방법을 써 보았습니다.

QtRuby 설치해보다

이미지
예전에 함께 프로그래머를 꿈꾸었던 형님이 다시 프로그래밍에 심취하시는것 같네요. 윈도우즈에서 루비로 프로그래밍을 하려면 뭐가 좋을까 생각해 보다 다음 클리너를 설치할때 qt4와 관련된 dll 파일이 얼핏 지나간 기억이 나서 qt4 ruby로 검색해보니 의외로 간단히 설치할 수 있네요. http://rubyinstaller.org에서 인스톨러로 루비 설치 gem install qtbindings 믿을 수 없을 정도로 간단합니다. qt 자체가 binding에 함께 설치되는지는 명확하지 않은데 저의 경우 다음 클리너에서 설치되어서 인지 아무런 설치 없이 바로 이용할 수 있었습니다. 이후 Qt4 ruby 튜토리얼 사이트 에 나와 있는 예제를 실행시켜 보니 6줄로 간단한 창을 만들어 띄울 수 있군요. 윈도우즈용으로 만들어보고 싶은 프로그램이 있어 요즘 이리 저리 고민중인데 이것도 괜찮은 방법일것 같습니다. Qt + Ruby 혹은 HTML5 + javascript...