12월, 2015의 게시물 표시

Qt 로 만들자: 다항 함수 그래프 그리기

이미지
지금까지 GUI 위젯들을 활용한 프로그램들을 만들어 보았다. 이번에는 다항 함수의 그래프를 그려주는 <Plot> 을 만들어 보면서, 사용자 정의 위젯과 Qt 가 제공하는 페이팅 API  를 살펴볼 것이다. 1. 요구사항 다항식을 입력 받고, x 의 범위를 입력 받아, 다항식의 그래프를 그린다  2. 코드 작성 2.1 프로젝트 작성 프로젝트 이름: Plot 메인 클래스 이름: Plot 메인 클래스 유형: QMainWindow 2.2 헤더 분석(plot.h) Colored By Color Scripter ™ 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 #include  <QMainWindow> #include  <QtWidgets> class  GraphWidget; /**  * @brief 그래프 그리기  */ class  Plot :  public  QMainWindow {     Q_OBJECT public :     Plot(QWidget *parent = 0);     ~Plot(); private :     QLineEdit *_polyLine;            ///< 다항식 편집기     QLineEdit *_star...

< 유럽을 그리다 > 를 읽고...

배종훈 작가의 <유럽을 그리다> 를 읽었다. 처음 읽으면 이 책이 에세이인지 소설인지 구분이 가지 않는다. 하지만, 조금만 더 읽다 보면 작가의 경험이 배어있는 소설이라는 것을 알게된다. 그것도 여행을 하는 모든 이가 꿈꾸는 여행지에서의 사랑을 다루는 소설이라는 것을. 이 책의 특징이라면 89 개의 장면으로 구성되어 있고, 각 장면은 짧은 글과 여행지를 그린 그림으로 이루어져 있다는 것이다. 화려하면서도 간결한 문체는 읽는 이에게 각 장면이 소설이 아니라 시인 것같은 착각이 들게 한다. 게다가 함께 곁들인 그림은 그런 착각을 배가한다. 마치 과거 선비들이 즐겼다던 시와 그림을 함께 한 것 같은 착각. 특히 자타가 공인하고 있는 배종훈 작가의 그림은 마치 여행지에 직접 와 있는 듯한 느낌을 들게 한다. 가장 인상에 남는 그림은 <#08 여행의 시간> 에 나오는 <아비뇽의 새벽> 이다. 사실 이 책의 발간과 함께 한 배종훈 작가의 그림 전시회를 갔었다. 그 때 전시회장 앞에 세워져 있던 현수막에 몇 개의 그림이 인쇄되어 있었는데, 그 중에 가장 눈에 띄는 것이 이 작품이었다. 전시회장에 빨리 가서 실제 그림을 확인하고 싶었지만, 아쉽게도 이미 팔리고 없다고 했다. 정말 아쉬웠다. 그래도 그 그림이 이 책에 실려 있어 그나마 다행이었다. 이 작품을 처음 보자마자 감동을 받았던 까닭은, 어두운 도시와 대비되는, 붉게 물들어 가고 있는 새벽녘의 하늘이 왜인지 모르게 가슴에 와닿았기 때문이다. 그리고 <#39 그리움은 항상 높은 곳과 물이 있는 곳에 모인다> 에 그려져 있는 <당신이 없는 시간 2> 와 <#52 원 데이> 에 그려져 있는 <당신이 없는 시간> 을 보면서 <당신> 이 없으면 내가 보는 세상에는 결국 어둠이 스미게 되는구나 하는 생각이 들었다. 나의 <당신> 이 사라지지 않도록 조심해야 겠다는 생각도 함께. 이 책의 마지막 쪽을 넘...

Qt 로 만들자: 인터넷 시계

이미지
이번에 만들어 볼 프로그램은 <인터넷 시계> 이다. <인터넷 시계> 만들어 봄으로써 Qt 에서 날짜 및 시간을 다루는 방법과 UDP 소켓을 이용하는 방법을 알 수 있게 될 것이다. 1. 요구 사항 시간을 로컬 시간으로 나타낸다 인터넷 시간과 시스템 시간을 비교한다 2. 코드 작성 2.1 프로젝트 작성 프로젝트 이름: Clock 메인 클래스 이름: Clock 메인 클래스 유형: QMainWindow 2.2 헤더 분석(clock.h) Colored By Color Scripter ™ 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 #ifndef  CLOCK_H #define  CLOCK_H #include  <QMainWindow> #include  <QtWidgets> #include  <QtNetwork> // 비트 필드 사용 여부 #define  USE_BITFIELDS   0 /**  * @brief 인터넷 시계  */ class  Clock :  public  QMainWindow {     Q_O...