
QTableView 클래스는 MVC 형태로 모델과 뷰를 분리하여 개발자는 모델을 제공하고 뷰는 QTableView 클래스에서 책임지는 방식이다. QWidget> QFrame> QAbstractScrollArea의 계층 구조로 상속받는다. 참조 링크 : https://doc.qt.io/qt-5/qtableview.html QTableView tableView; MyModel myModel; tableView.setModel(&myModel); tableView.show(); 프로그램에서 모델을 통해서 표를 출력하는 부분은 위의 예제처럼 단순하다. setModel로 사용자의 모델 클래스 오브젝트를 제공하면 된다. 물론 사용자 모델 클래스에서는 미리 약속된 형태로 뷰의 요청에 필요한 정보를 제공해야 한다. #..

QTextEdit 클래스는 단순 텍스트뿐만 아니라 HTML4를 지원하는 하이퍼텍스트까지 지원하는 뷰어 역할과 편집기 역할을 모두 할 수 있는 도구이다. 위의 그림에서 볼 수 있듯이 HTML 문법을 자유롭게 활용할 수 있고 이미지와 테이블 등을 표시할 수 있으며 내용이 커지면 자동으로 스크롤바로 컨트롤할 수 있도록 해준다. QSyntaxHighlighter를 사용하면 개발자가 원하는 방식으로 편집기를 폭넓게 활용할 수 있다.("QSyntaxHighlighter 클래스(QT C++)" 참조) QWidget < QFrame < QAbstractScrollArea 클래스를 상속한다. 참조 링크 : https://doc.qt.io/qt-5/qtextedit.html ed_fld = new QTextEdit(thi..

QAction 클래스는 메뉴, 툴바버튼, 단축키에 대한 처리를 일원화하는 도구로 QObject 클래스를 상속받는다. 많은 UI 관련 클래스들이 QWidget 클래스를 상속받고 QWidget에 addAction 메서드를 정의하고 있지만 해당 액션이 메뉴나 툴바 등에만 유효하므로 주의한다. 참조 링크 : https://doc.qt.io/qt-5/qaction.html ico_t.load(":/images/new.png"); QAction *actNew = new QAction(QPixmap::fromImage(ico_t),_("New"),this); actNew->setShortcut(Qt::CTRL+Qt::Key_N); actNew->setToolTip(_("New Project")); connect(ac..

한 줄 입력창을 지원하는 QT UI 클래스로 복사 및 붙여 넣기와 실행취소/다시 실행도 지원을 비롯한 다양한 기능을 지원한다. QWidget 클래스를 상속받는다, 참조 링크 : https://doc.qt.io/qt-5/qlineedit.html 위의 그림은 대표적인 사용 사례들로 연관 메서드들은 다음과 같다. QString placeholderText() void setPlaceholderText(const QString &) : 입력창에 무엇을 입력할지 표시하는 Place Holder 설정 및 조회 bool isReadOnly() void setReadOnly(bool) bool hasFrame() void setFrame(bool) : 읽기 전용/테두리 표시 여부 조회 및 설정 QLineEdit::E..

다양한 대화창을 만드는 기반 클래스이다. 현재의 대화창이 다른 창 보다 입력 우선순위를 갖는 모달(Modal) 방식의 대화창과 다른 창과 독립적으로 운용되는 모달리스(Modeless, Non-Modal) 방식의 대화창을 만들 수 있다. 사용자 대화창도 이 클래스를 상속받아 만들 수 있지만 QColorDialog, QErrorMessage, QFileDialog, QFontDialog, QInputDialog, QMessageBox, QProgressDialog 등의 클래스들도 QDialog 클래스를 상속한다. QDialog 클래스는 QWidget 클래스를 상속받는다. 참조 링크 : https://doc.qt.io/qt-5/qdialog.html int exec() : 대화창을 모달 방식으로 열고 대화창을..

동일한 타입의 항목들을 담을 수 있는 템플릿 클래스로 C++ 기본 템플릿과 유사하다. QT에서 제공하는 비슷한 템플릿으로 QLinkedList, QVector 클래스가 있다. QList가 다양한 QT API에 사용되는 장점이 있지만 데이터를 연속적인 공간에 저장하는 QVector가 상황에 따라서 높은 성능을 보일 수 있으므로 필요에 맞게 활용한다. 사용법들은 비슷하다. 참조 링크 : https://doc.qt.io/qt-5/qlist.html QList ws_wdg = work_space->subWindowList(); int iW; for (iW = 0; iW windowTitle().toSt..

다음과 같은 여러 클래스가 상속받는 가장 기본적인 클래스로 QObject, QPaintDevice 클래스를 상속받는다. 마우스나 키보드와 같은 이벤트를 받고 사각 영역에 내용을 출력한다. QAbstractButton, QAbstractSlider, QAbstractSpinBox, QCalendarWidget, QComboBox, QDesignerActionEditorInterface, QDesignerFormWindowInterface, QDesignerObjectInspectorInterface, QDesignerPropertyEditorInterface, QDesignerWidgetBoxInterface, QDesktopWidget, QDialog, QDialogButtonBox, QDockWidge..

UI를 구성하는 가장 기본적인 클래스로 우측의 버튼을 클릭하면 리스트박스로 특정 항목을 선택할 수 있다. 개별 항목을 문자열뿐만 아니라 이미지 목록도 가능하다. 클래스는 QWidget 클래스를 상속받는다. 상세한 내용은 아래의 링크를 참조한다. 참조 링크 : https://doc.qt.io/qt-5/qcombobox.html edFld = new QComboBox(this); ((QComboBox*)edFld)->setEditable(true); connect((QComboBox*)edFld, SIGNAL(editTextChanged(const QString&)), SLOT(changed())); connect((QComboBox*)edFld, SIGNAL(activated(int)), this, SLO..