11월, 2015의 게시물 표시

Qt 로 만들자: 디렉토리 보기

이미지
파일 관리자의 가장 기본이 되는 기능은 단연 디렉토리 보기일 것이다. 이번에는 Qt 에서 제공하는 기능을 가지고 <디렉토리 보기> 를 만들어 보자. 1. 요구 사항 현재 보고 있는 디렉토리의 절대 경로를나타내기 디렉토리를 트리구조로 나타내기 디렉토리를 구성하고 있는 서브-디렉토리와 파일들을 나타내기 2. 코드 작성 2.1 프로젝트 작성 프로젝트 이름: DirLister 메인 클래스 이름: DirLister 메인 클래스 유형: QMainWindow 2.2 헤더 분석(dirlister.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 #ifndef  DIRLISTER_H #define  DIRLISTER_H #include  <QMainWindow> #include  <QtWidgets> #include  <QFileSystemModel> /**  * @brief 디렉토리 구조와 내용을 보여준다  */ class  DirLister :  public  QMainWindow {     Q_OBJECT public :     DirLister(QWidget *parent = 0);     ~DirLister(); private :     QLineEdit *_locationLine;        ///< 위치     QFileSystemModel *_dirModel;     ///< 디렉토리 구조용 파일 시스템 모델     QTreeView *_dirView;             ///< 디렉토리 구조용 트리뷰     QFileSystemModel *_entryModel;   ///< 디

Firefox 41 한글 입력 문제

Firefox 가 41 로 업그레이드 되면서, 갑작스레 한글 입력에 문제가 생겼다. 특히 구글 블로거에 글을 쓰려고 했더니 백스페이스를 누르면 갑작스레 커서가 사라진다거나, 나열형을 만들려고 하면 나열 기호 앞에 나온대든지. 나만 그런 가 해서 검색해 보았더니, Firefox 41 의 문제였다. 해결 방법은 다음과 같다. 주소창에 about:config 를 친다 [고급 환경 설정 기능] 경고 메세지가 나오면 [고급 기능 사용 동의] 를 누른다 속성들이 나오면 [검색] 창에 [intl.tsf.enable] 을 친다 [설정 이름] 에 [intl.tsf.enable] 이 나오면 해당 항목을 더블 클릭하여 값을 [false] 로 바꾼다 Firefox 를 다시 시작한다 사실 이 문제는 Firefox 41 에 도입된 Text Services Framework 지원 때문이라고 한다. 이 방법은 그 기능을 임시로 끄는 것이다. 현재 Firefox 41.0.2 를 쓰고 있는데, 문제가 여전하다. 다행히 42 베타에서는 해결되었다고 한다. 42 가 나올 때까지는 이 방법을 쓰자. 아니면 40 을 써도 된다. 출처: http://forums.mozilla.or.kr/viewtopic.php?p=48014#p48014 http://www.parkoz.com/zboard/view.php?i ... &no=374466 (4번째 댓글 참조) https://namu.wiki/w/%ED%8C%8C%EC%9D%B4% ... 29#s-6.2.1

Qt 로 만들자: Syntax Highlighter

이미지
Qt Creator 뿐만 아니라 요즘의 에디터들은 모두 Syntax Highlighting 기능을 가지고 있다. 이번에는 이 Syntax Highlighting 기능을 구현해 보자. 1. 요구사항 주석, 키워드, 기호를 색깔별로 나타낸다. 2. 코드 작성 2.1 프로젝트 작성 프로젝트 이름 : Syntax Highlighter 메인클래스 이름 : MainWindow 메인클래스 유형 : QMainWindow 2.2 헤더 분석(mainwindow.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 /** @file mainwindow.h  */ #ifndef  MAINWINDOW_H #define  MAINWINDOW_H #include   <QMainWindow> #include   <QtWidgets> /**  * @brief SyntaxHighliter 클래스  */ class  MainWindow  :   public  QMainWindow {        Q_OBJECT public :        MainWindow(QWidget  *parent  =  0) ;         ~MainWindow( ) ; private :        QTextEdit  *_plainText;                     /// 원본 텍스트        QTextEdit  *_syntaxText;                   /// 문법 강조된 텍스트        QPushButton  *_highlightButton;     /// 문법 강조 실행 버튼         void  initMenus( ) ;