반응형

QT 39

[ Qt 프로그래밍 ] 미로찾기 프로그램

미로찾기는 시작점에서 출발해서 미로를 통과해 도착점까지 가는게 목표입니다.만약 일직선이면 그냥 가면됩니다.하지만 항상 갈림길이 나옵니다.과연 이 갈림길에서 어떤 선택을 해야할까요?이런점에서 많은 고민을 해봐야하는 프로그램입니다.총 에너지는 미로의 행*열*2의 크기를 갖고있고 한칸씩 움직일때마다 1씩 감소합니다.그리고 자신의 위치에서 주변을 둘러싸는 9칸까지는 벽인지 길인지 알수있습니다.마지막으로 왼쪽위에서 출발해서 오른쪽아래 끝점으로 도착하는건 정해져있지만,미로의 크기와 미로 데이터는 랜덤입니다.미로는 정사각형이 아니라 직사각형일 수도 있습니다. 저는 미로찾기 프로그램을 짤때 간단한 몇가지 아이디어를 적용했습니다. 첫째로, 출발점과 도착점의 위치는 정해져있습니다. 따라서 어떤 미로든 출발점과 도착점을 잇..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] OpenGL 로 2D 사각형 만들기

OpenGL로 2D 시점의 사각형을 만들어보겠습니다. 아래 코드는 첨부파일에 올려둔 프로젝트에서 OpenGL부분의 클래스입니다. Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334353637383940#ifndef GLWIDGET_H#define GLWIDGET_H #include class QTimer; class GLWidget : public QGLWidget{ Q_OBJECTpublic: GLWidget(); ~GLWidget(); private: void paintGL(); //GL그리는 함수 void initializeGL(); //GL초기화하는 함수 void resizeGL(int w, in..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] OpenGL 로 큐브 만들기

이번에는 Qt로 OpenGL을 이용한 큐브를 만들어보겠습니다.Qt에서 제공하는 OpenGL은 대부분의 기능을 지원합니다.GL.h을 사용하고, glut.h 혹은 glu.h는 사용하지 않습니다.그래서 glut로 시작하는 함수 혹은 glu로 시작하는 함수는 읽지 못합니다. 다음은 프로젝트의 일부분 소스코드입니다. Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233343536373839404142434445#ifndef GLWIDGET_H#define GLWIDGET_H #include class QTimer; class GLWidget : public QGLWidget{ Q_OBJECTpublic: GLWidge..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] 다른 사람이 만든 프로젝트 열기

Qt를 처음 사용하시는 분이 헷갈릴 것 같아서 간단하게 설명드리겠습니다. Qt creator를 실행합니다. FIle - Open File or Project... 클릭 프로젝트 폴더에 들어가면 .pro 파일이 있습니다. 이것이 Qt의 솔루션파일과 같습니다.선택하고 열어주면 됩니다. 다음과 같이 선택한 프로젝트가 보이면 제대로 로딩이 된겁니다.쉽죠?

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] 채팅 프로그램 만들기

GUI 프로그래밍은 많이 해봤지만, TCP/IP 프로그래밍은 거의 처음이네요. Qt Creator를 실행해서 프로젝트를 하나 생성해 줍시다.채팅 프로그램은 서버 프로그램과 클라이언트 프로그램 두가지로 나눠집니다.즉, 서버프로그램, 클라이언트 프로그램을 따로 만들어야 합니다.클라이언트 프로그램은 사용자 개개인을 말하고, 서버 프로그램은 사용자들이 전송한 메세지를 모아서 뿌려주는 기능을 합니다.서버와 클라이언트는 일대다의 관계가 됩니다. 지금 살펴볼 코드는 단지 헤더파일입니다. 풀 코드는 제가 올린 소스파일에 있습니다. -- 서버의 클래스 선언부 --Colored By Color Scripter™12345678910111213141516171819202122232425262728293031#ifndef CH..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] Qwt에서 컬러맵 만들기

Qwt에서 간단하게 컬러맵을 만들어보도록 하겠습니다. Qt Creator에서 프로젝트를 하나 생성합니다. 이건 전에 언급했으니 넘어가겠습니다.프로젝트를 보면 확장자명이 pro인 파일이 있습니다. 더블클릭해주세요. 오른쪽과 같은 코드가 뜨는데 빨간색 박스를 입력해주세요. Qwt 라이브러리를 사용하겠다는 표시입니다. Qt 클래스 생성이 처음이니 이부분도 차근차근 설명해드리겠습니다. 그리고 프로젝트 루트폴더를 오른쪽 클릭- add New 를 클릭합니다. 그러면 다음과 같이 창이 뜨는데 이대로 Choose를 클릭해주세요. 클래스 네임에 colormap으로 입력한 후 next를 누르고 finish를 눌러 클래스를 생성합니다. Colored By Color Scripter™12345678910111213141516..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] Qt의 시각화 라이브러리 Qwt 설치하기 (MinGW, Qt4.8.3)

Qwt는 Qt기반의 시각화 라이브러리입니다. 주로 그래프를 그리는데 사용됩니다.MinGW와 Qt4.8.3이 설치되어있다고 가정합니다. http://qwt.sourceforge.net/qwtinstall.html 에서 project page 링크를 클릭합니다. 6.1.0 링크를 클릭합니다. 그러면 잠시 후에 Qwt-6.1.0 이름의 압축파일이 자동으로 다운로드 됩니다.C:\에 압축을 풉니다. Qt 4.8.4 Command Prompt를 실행합니다. 시작 - Qt 4.8.4 에 있습니다. qmake C:\qwt-6.1.0\qwt.pro 을 입력한 후,mingw32-make 을 입력합니다.5분 정도의 시간이 걸립니다. 작업이 완료되면 mingw32-make install 을 입력합니다. 이제 프롬프트를 닫고 ..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] Qt5 설치하기

모르시는 분들을 위해 말하자면, Qt는 노르웨이 회사 트롤텍에서 개발한 크로스 플렛폼 프레임워크입니다. 크로스 플랫폼이란, 윈도우, 리눅스, OSX에서 모두 실행가능하다는 의미를 갖습니다. Qt는 프로그래밍 언어는 아니고, Qt는 C++언어를 기반으로 합니다. Qt는 보통 GUI를 개발할때 자주 사용되며, 비GUI 프로그램을 개발할 때도 사용할 수 있습니다. 2012년 8월 핀란드 회사 Digia에 인수되었습니다.만약 Qt를 상업적으로 이용할 시에는 상업용 버전을 구입하셔야 하며, 비상업적 용도로 사용하는 것은 무료입니다. 듣기로는 아시아지역에서 Qt를 많이 사용한다고 합니다.자, 이제 Qt를 설치해보도록 하겠습니다. 먼저, http://qt-project.org/ 에서 Downloads에 들어가주세요 ..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ][신간]Qt5 프로그래밍 가이드

요즘 IT 분야에서는 ‘플랫폼’ 혹은 ‘생태계’라는 단어가 화두가 되고 있다. 스마트폰이 대중화되면서 스마트폰 플랫폼인 안드로이드와 iOS도 이제는 일반인들에게 매우 익숙한 단어가 됐다. 안드로이드와 iOS는 하나의 플랫폼으로서 생태계를 가장 잘 구축한 OS로 인정받고 있다. 물론 이런 양분화된 스마트폰 OS 시장을 경계하는 이들도 있다. 모질라재단은 웹 기반 OS인 ‘파이어폭스OS’로 저가 스마트폰 시장을 개척하고 있고, 삼성과 인텔은 ‘타이젠’이라는 새로운 OS를 개발해 구글과 애플의 독주를 막기 위해 힘을 모으고 있다. 마이크로소프트도 노키아와 힘을 합쳐 윈도우폰을 꾸준히 내놓고 있다. 요즘에 TV에도 플랫폼을 얹고 있으며, 사물인터넷 시대가 되면 어떤 기기에 어떤 플랫폼이 올라갈지 아무도 장담할 ..

컴퓨터 공학/Qt 2015.11.26

[ Qt 프로그래밍 ] Qt에서 위젯 안에서 마우스 클릭으로 위젯이동하기 예제

Qt에서 UI를 개발하다 보면 윈도우 프레임을 없애야 할 경우가 있습니다. 그런데 윈도우 프레임을 제거하면 프로그램화면을 마우스로 이동할 수 없게됩니다. 이 때는 마우스 이벤트를 커스터마이즈하면 해결가능합니다. Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233#ifndef WIDGET_H#define WIDGET_H #include namespace Ui {class Widget;} class Widget : public QWidget{ Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private: Ui::Widget *ui; int ..

컴퓨터 공학/Qt 2015.11.26
반응형