
QFileDialog 클래스는 파일 시스템에서 하나의 파일이나 여러 개의 파일, 또는 디렉터리를 편리하게 선택할 수 있도록 해준다. QWidget setFileMode(QFileDialog::ExistingFiles); fileDlg->setAcceptMode(QFileDialog::AcceptOpen); fileDlg->setWindowTitle(_("Loading the media")); fileDlg->setNameFilter(_("Images (*.png *.gif *.jpg *...

QPainter 클래스는 GUI 구성에 필요한 각종 작업을 수행할 수 있도록 지원하는 클래스로 라인 및 다양한 도형 그리기를 비롯해서 텍스트 드로잉과 스케일과 변형을 감안 그리기 등도 수행할 수 있다. QPaintDevice 클래스를 상속하는 모든 오브젝트에 대해서 작업할 수 있다. 참조 링크 : https://doc.qt.io/qt-5/qpainter.html QPaintDevice 클래스를 상속하는 클래스들은 다음과 같다. QGLFramebufferObject, QGLPixelBuffer, QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, QWidget 위의 클래스 목록에..

QVariant 클래스는 다양한 QT 데이터 타입을 하나의 타입으로 대신할 수 있도록 도와주는 클래스이다. 참조 링크 : https://doc.qt.io/qt-5/qvariant.html hit->setData(Qt::UserRole + 1, (bool)s2i(tC->attr("edit"))); hit->setData(Qt::UserRole + 2, ((wVl = tC->attr("color")).size()) ? QString::fromStdString(wVl) : QVariant()); hit->setData(Qt::UserRole + 3, ((wVl = tC->attr("colorText")).size()) ? QString::fromStdString(wVl) : QVariant()); hit->s..

QSettings 클래스는 QObject를 상속하는 기반 클래스로 사용자가 편리하게 다양한 설정을 저장하고 읽을 수 있도록 돕는다. 운영체제나 옵션에 따라 정보의 저장 위치가 달라질 수 있다. 참조 링크 : https://doc.qt.io/qt-5/qsettings.html 위의 그림은 응용 프로그램의 다양한 설정을 INI 파일 형식의 파일에 저장하고 있는 모습이다. 통상 섹션으로 나누어 다양한 정보를 저장하고 읽는데, QSettings 클래스는 이 과정을 편리하고 수행할 수 있도록 돕는다. 값의 설정과 읽기에 QVariant 클래스를 사용하므로 다양한 오브젝트를 부담 없이 저장하고 읽을 수 있다. QSettings settings(((QApplication::applicationDirPath()) + ..

QGraphicsItem 클래스는 QGraphicsScene 클래스에서(QGraphicsScene 클래스(QT C++) 참조) 사용하는 모든 그래픽 요소들이 상속하는 기본 클래스이다. QAbstractGraphicsShapeItem를 통해서 다음과 같은 클래스들이 상속받는다. QGraphicsEllipseItem QGraphicsLineItem QGraphicsPathItem QGraphicsPixmapItem QGraphicsPolygonItem QGraphicsRectItem QGraphicsSimpleTextItem QGraphicsTextItem 참조 링크 : https://doc.qt.io/qt-5/qgraphicsitem.html class MyItem : public QGraphicsItem..

QGraphicsScene 클래스는 다양한 2D 그래픽 요소들을 관리하는 캔버스와 같은 역할을 수행하고 작성된 씬은 QGraphicsView (QGraphicsView 클래스(QT C++) 참조) 클래스를 통해서 뷰로 출력한다. QObject를 상속받는다. 참조 링크 : https://doc.qt.io/qt-5/qgraphicsscene.html QGraphicsScene* grpscene = new QGraphicsScene(); grpscene->setSceneRect(0, 0, 800, 600); grpscene->addRect(10, 10, 50, 50, QPen(Qt::red, 2), QBrush(Qt::yellow, Qt::SolidPattern)); grpscene->addText((TabC..

QGraphicsView 클래스는 QGraphicsScene 기반으로 만들어진 2D 그래픽을 스크롤 가능한 뷰로 출력하는 역할을 수행한다. QWidget> QFrame> QAbstractScrollArea의 계층 구조로 상속받는다. 뷰 영역의 크기에 따라서 자동적으로 스크롤바를 표시한다. 참조 링크 : https://doc.qt.io/qt-5/qgraphicsview.html https://doc.qt.io/qt-5/qtwidgets-graphicsview-diagramscene-example.html QGraphicsScene *scene = new QGraphicsScene(); scene->addText("Hello, world!"); QGraphicsView *view = new QGraphics..

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