QT는 이전부터 제가 많이 GTK와 비교하며 포스팅을 해온 라이브러리입니다. GTK는 상당히 좋은 라이브러리지만 QT와 비교해서 한 가지 꿀리는 것이 있습니다. 바로 QTCreator라는 무지막지하게 강력한 개발환경입니다.

 QTCreator는 C++기반 개발환경으로 비슷한 MFC와 비교했을 때 전혀 꿀릴 것이 없는 상당히 강력한 개발환경입니다. GUI는 기본에 Visual Studio와 비교해도 크게 다를 바 없습니다. 물론 Visual Studio가 여러모로 편리한 인터페이스를 지니고 개발자 친화적이기는 하지만 문제는 어디까지나 Windows 전용이라는 것이고 Microsoft의 물건이 아니라면 상당히 불친절하다는 단점이 있습니다.


그에 비해 QT는 여기저기 참 잘 붙는 라이브러리이며 QTCreator란 개발환경마저 오픈소스로 만들어져서 상당히 확장성이 뛰어납니다. 무엇보다 QT 그 자체가 상당한 장점으로 작용합니다. 즉, 컴파일 환경에 따라 다르기는 하지만 QT로만 짜여진 프로그램은 OSX, Linux, Windows를 가리지 않습니다. OS 특화 기능을 제외하면 일단 돌아갈 수 있다는 생각을 할 수 있습니다.



UI 개발이 이토록 쉽다니... QTCreator는 정말 강력한 툴이다.

그런데 이 QTCreator에서 사용하는 C++이 여러모로 편리하고 인력도 상당히 많지만 개발 시간이 조금 오래 걸린다는 단점이 있습니다. 물론 숙련된 개발자의 경우 어떠한 언어보다 빠르게 개발이 가능하지만 Ruby나 Python 심지어 Perl같은 스크립트형 언어에 비하면 개발 시간이 느린 것은 사실입니다. (물론 속도를 중시한다면 C++이 당연히 더 좋습니다.)



C++이 개발하기 편하다는 사람도 있지만 나에게 있어 C++은 괜히 복잡한 언어로 밖에 안 보인다....


그래서 저는 나름대로 Python으로 GUI개발을 할 수 있는 도구를 원했는데 QTCreator를 직접 쓰는 것은 아니지만 QTCreator에서 만든 GUI를 Python으로 변환할 수 있게 만들어진 도구가 있더군요. 이름하여 pyuic입니다.


QTCreator로 일반적인 QT Widget Application프로젝트를 만든 다음 Forms 폴더내의 ui파일을 더블클릭하면 GUI디자인을 할 수 있는 환경이 뜹니다. (제일 위에 있는 스크린샷 참조)


여기서 GUI디자인을 하고 저장을 하면 ~~.ui파일이 만들어지는데 이 파일을 텍스트에디터로 열어보면 일반적인 XML형식임을 알 수 있습니다. 이 XML형식의 UI파일을 Python코드로 변환해주는 프로그램이 pyuic입니다.


pyuic는 다음과 같은 명령으로 설치할 수 있습니다.


QT4

 sudo apt-get install pyqt4-dev-tools

 QT5

 sudo apt-get install pyqt5-dev-tools


QT4와 QT5의 차이는 말 그대로 버전 차이입니다. QT5가 wayland에 대응하는 버전이니 QT5를 더 추천합니다.


그리고 터미널을 이용해서 ui파일이 있는 프로젝트 폴더로 쳐들어갑시다.


cd 어쩌고.. 명령입니다.


그리고 한번 다음 명령을 쳐봅시다.


QTCreator로 만든 UI파일을 따로 빼내서 사용하자.



pyuic5 *.ui -x -o test.py

 QT4를 쓰신다면 pyuic5대신 pyuic4를 쓰시면 됩니다.

그러면 test.py라는 파일이 만들어지는데 이 파이썬 스크립트를 실행하면 여러분이 만든 GUI가 떡 하니 나옵니다!!!!



내가 만든 GUI가 파이썬으로 실행된다 우오오!!


중요한것은....이 스크립트에는 아무런 기능도 없습니다. 버튼이나 스크롤등의 기능을 만드시려면 이제 스크립트를 수정하거나 다른 스크립트에서 전달하는 등의 방법을 이용하시면 됩니다.


만약 UI만 파이썬으로 구현하고 중요한 기능은 다른 스크립트나 다른 언어를 이용하신다면 아까 명령에서 -x 옵션만 빼주시면 init함수를 빼버립니다. Jython등을 쓰면서 메인 함수를 Java로 사용하신다면 굉장히 편리합니다.


즉 Python 스크립트로 변환시

pyuic5 *.ui -o test.py


요렇게 해주시면 UI클래스만 나오므로 다른 메인 클래스에서 받아 쓰면 상당히 편리합니다.

실제로 저는 아두이노 제어 프로그램을 이런 식으로 짰습니다. Python을 그간 써먹은 적이 별로 없어서 약간 속도가 더디기는 했지만 Python특유의 빠른 개발속도 덕에 하루 만에 완성해서 써먹었습니다. 그리고 이거 우분투에서 만든 것이지만 Windows에서 실행하면 그대로 실행됩니다. OSX는 테스트해보지 못했지만 당연히 실행 될 것이라 생각하고 있고 기타 Python과 QT가 포팅된 모든 OS환경이라면 모두 실행이 잘 될것이라 생각됩니다.


어떤가요? 어떤 환경에서도 척척 붙는 언어인 Python, 그리고 어떤 환경에서라도 쓸 수 있는 라이브러리인 QT. 여러분께 정말 추천하고 싶은 개발 조합입니다.

,

Minitab은 통계용 프로그램입니다. 다른 용도로도 많이 쓰이곤 하지만 SSPS나 기타 통계용 프로그램보다 싼 것이 장점이지요. 하지만 Windows만 지원하기 때문에 통계 분석을 위해서는 Windows를 필요로 합니다.


우분투에서도 이런 프로그램이 없지는 않지만 R같은 놈 처럼 프로그래밍을 필요로 하거나 Python의 모듈처럼 초보자가 쓰기에는 힘든 구성을 지니곤 합니다. 그리고 무엇보다 교육자료들이 하나같이 Minitab기준이라 R이나 Python이 분석용으로 쓰이기 참 어렵기도 합니다.


그러면 방법은 하나지요...Wine으로 설치하는 수밖에 없습니다.


그래서 Minitab의 구버전인 15버전을 평가판으로 설치했습니다. Playonlinux에서 설치를 누르고 non-listed program을 선택하신 다음 wine버전을 1.7.5이상으로 선택하시고 설치하시면 됩니다.


minitab 15버전 평가판은 다음 링크에서 다운로드 받으시길 바랍니다.

https://drive.google.com/open?id=0B5LQBL0rAm2fNV9Ld29IVzZjMVk&authuser=0


그리고 추가 라이브러리로 wsh56과 wsh57을 설치해주셔야 그래프가 무사히 뜨게 됩니다. 이거 없으면 그래프가 안 뜹니다.


아 그리고 실험계획법(Design Of Experiment)의 부분 계획을 위해서는 usp10.dll파일이 필요합니다. 아직 따로 Playonlinux에서 지원을 하는 듯 하지는 않더군요. 그래서

usp10.dll.zip

이 파일안에 있는 usp10.dll파일을

~/PlayOnLinux's virtual drives/(Minitab Prefix이름)/drive_c/windows/system32 압축을 풀어서 넣어주신뒤 wine 설정(구성 버튼을 누르고 Minitab의 Prefix를 선택해 주시면 Wine탭에 Wine 설정버튼이 있습니다.)에서




usp10을 추가해주시면 됩니다.


그리고 Mtb.exe파일을 바로가기로 추가해주시면 됩니다.



이제 리눅스에서 Minitab이 실행 되었군요.

.....

이렇게 쉬운 것을 설명하려고 이 글을 올린 것은 아닙니다....




이렇게 wine으로 Minitab을 실행하면 한 가지 어마어마한 일이 일어나게 됩니다.


바로....


...

남은 기간이 30일에서 변하지를 않습니다. 저는 Minitab을 설치한지 약 7일 정도가 지났음에도 어찌된 영문인지 며칠이 지나도 30일이 남았다고 나옵니다.


..디버그항목을 보니 서비스의 일부가 실행이 안 되면서 작동이 안 된듯한데 그 부분이 어이없게도 날짜 제한 부분이었나 봅니다.


wine이라는 특이한 환경을 쓰다보니 별 희한한 일도 다 생기네요 참.

,

 여러분들은 그림판을 어떻게 생각하시나요? 어떤 분들은 그냥 말 그대로 그림 그리는 판정도(?)로 생각하시는 분도 계시고, 예술 작품용(?) 캔버스로 활용하시는 분들도 많으실겁니다. 사실 이만한 성능에 이 정도 메모리만 쓰는 프로그램도 사실 드뭅니다. 까놓고 말해서 쓸모없기로 유명한 Windows 기본프로그램 중 몇 안되는 제 값 하는 프로그램이 메모장과 그림판이라고 할 정도이니 말 다했습니다.  



출처 : 마이크로소프트 요새 그림판은 XP이전의 그림판과 궤를 달리한다. 역시 Windows 가격 20만원 중 5만원 이상의 값 어치 하는 프로그램.

 말 그대로 그림을 그리는 판이지만 그동안 우분투에 그림판같은 프로그램은 없었습니다. 그렇다고 우분투에서 그림판 쓰자고 Wine에 그림판 깔기도 참 뭐합니다. 그동안 우분투에서 기본 그래픽 에디터라고 하면 당연하다면 당연하게 Gimp였습니다. 그런데 Gimp란 이 놈은 사실 그림판에 대응하기 보다는 포토샵에 필적하는 녀석이다보니 간단한 사진에 글씨 넣기라던가 강조 표시정도에 써먹기에는 너무 쓸데없이 무거운 편입니다. (물론 일반인은 전체 기능의 5%밖에 못 쓴다는 포토샵보다는 훨씬 가볍습니다.)

저도 가끔 블로그에 그림을 올릴 때 살짝 편집을 하기는 하는데 그때마다 Gimp를 쓰기에는 너무 Gimp가 쓰기 힘들더군요. 못 할 것은 없는데 소잡는 칼로 닭 잡는듯한 느낌입니다. 간단한 레포트에 넣을 그래프에도 그림판정도면 딱인데 Gimp는 작업하기 참 무거웠습니다.


아무리봐도 Gimp는 간단한 편집에는 부적합하다. 그래프에 글씨 넣는 수준에 이걸 쓰는 것은 철조망 세우는데 타워크레인 쓰는 느낌.

정확히 말하자면 못할 것은 없습니다. 하지만 가볍게 할 작업을 굳이 무겁게 한다는 것이 아쉬웠습니다. 더욱이 Gimp는 용량 문제로 우분투 기본 탑재 프로그램에서 퇴출 당하기까지 했습니다. 


하지만 역시 수요가 있으면 공급도 있는 법. 우분투에 그림판 같은 존재가 드디어 등장했습니다. 이름하여 mtPaint Graphic Editor입니다.


mtPaint의 모습. 누가 봐도 그냥 그림판 클론이다.

 위의 스크린샷을 보시면 알겠지만 보면 그냥 그림판하고 크게 차이가 나지 않는 것을 보실 수 있습니다. 어쩌면 그림판의 Windows7 이후 버전보다는 XP 이전의 클래식한 모습에 가깝습니다. 즉, 그동안 우분투 사용자들은 Gimp가 맡았던 고급 기능의 그래픽 에디터와 함께 클래식 그림판이 맡았던 역할인 간단하게 그릴 수 있는 캔버스, 이것이 필요했던 것이지요.


 이 놈을 쓰다 보니 그동안 소 잡던 칼인 Gimp가 실행되는 횟수가 확 줄었습니다. 즉, 전 그동안 간단한 편집만 했기에 Gimp같은 무거운 프로그램이 필요 없었는데 대신할 것이 없었던 것이지요.


 굉장히 가볍고 좋군요. 왜 그동안 이런 프로그램이 없었는지 안타깝기만 합니다. 아니면 내가 못 찾았던 것일지도 모르겠지만요.

,