Qt - 모드 보기 디자인

3007 단어
모델 보기 디자인 모드
A. 모델 보기 디자인 모델 1. 모델 과 보기 가 분리 되 어 있 습 니 다. 2. 모델 은 표준 인터페이스 액세스 데 이 터 를 대외 적 으로 제공 합 니 다 (데이터 가 어떻게 표시 되 는 지 에 관심 이 없습니다) 3. 보기 사용자 정의 데이터 표시 방식 (데이터 가 어떻게 저장 되 는 지 에 관 계 없 음)모델 보기 모드 의 직관 적 인 이해 모델 보기 의 작업 메커니즘 1. 데이터 가 바 뀌 었 을 때 - 모델 이 신호 알림 보 기 를 보 냅 니 다 2. 사용자 가 보기 와 상호작용 을 할 때 - 보 기 는 신 호 를 보 내 상호작용 정 보 를 제공 합 니 다 Qt 중의 모델 류 차원 구조 QAbstractItemModel 류 는 모델 류 에 추상 적 인 인 인 터 페 이 스 를 제공 합 니 다. QAbstractItemModel 류 정의 항목 모델 이 사용 해 야 할 표준 인 터 페 이 스 를 제공 합 니 다.모델 / 보기 시스템 구조의 다른 구성 요소 와 상호작용 할 수 있 도록 합 니 다.그것 은 직접적 으로 예화 해 서 는 안 된다.반대로 새 모델 을 만 들 기 위해 하위 클래스 를 만들어 야 합 니 다.QAbstractItemModel 클래스 는 Model / View Classes 중 하나 로 Qt 모델 / 보기 프레임 의 일부분 입 니 다.이것 은 QML 의 항목 보기 요소 의 기본 데이터 모델 이나 Qt Widgets 모듈 의 항목 보기 클래스 로 사용 할 수 있 습 니 다.프로젝트 보기 에 사용 할 모델 이 필요 하 다 면, 예 를 들 어 QML 의 List View 요소 나 C + + 위 젯 QListView 나 QTableView 등 하위 클래스 화 QAbstractList Model 이나 QAbstractTableModel 을 고려 해 야 합 니 다.바 텀 데이터 모델 은 표 차원 구조 로 보기 와 의뢰 를 공개 합 니 다.계층 구 조 를 사용 하지 않 으 면 모델 은 줄 과 열의 간단 한 표 이다.각 항목 마다 QModelIndex 가 지정 한 유일한 색인 Qt 에서 보기 류 의 계층 구조 가 있 습 니 다. QAbstractItemView 류 는 QAbstractItemModel 의 모든 표준 보 기 를 사용 하 는 기본 클래스 입 니 다.QAbstractItemView 는 추상 적 인 유형 으로 그 자 체 를 예화 할 수 없다. 그것 은 표준 인 터 페 이 스 를 제공 하여 신호 와 슬롯 메커니즘 과 모델 을 통 해 상호작용 을 하여 하위 클래스 가 모델 의 변화 에 따라 최신 을 유지 할 수 있 도록 한다. 키보드 와 마우스 내 비게 이 션, 시각 스크롤, 프로젝트 편집 과 선택 에 표준 지원 을 제공 합 니 다.모형 보기 프로 그래 밍 예시 트 리 보기 와 모형 의 코드 예시
Widget.cpp
#include "Widget.h"
#include 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    m_treeView.setParent(this);
    m_treeView.move(10, 10);
    m_treeView.resize(500, 300);

    m_fsModel.setRootPath(QDir::currentPath());//     

    m_treeView.setModel(&m_fsModel);//        

    m_treeView.setRootIndex(m_fsModel.index(QDir::currentPath()));
}

Widget::~Widget()
{

}

Widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include 
#include 
#include 

class Widget : public QWidget
{
    Q_OBJECT

    QFileSystemModel m_fsModel;
    QTreeView m_treeView;//    
public:
    Widget(QWidget *parent = 0);
    ~Widget();
};

#endif // WIDGET_H

실행 하 는 구 조 는 그림 에서 보 듯 이 B. 모델 보기 디자인 모델 1. 모델 정의 표준 인터페이스 (구성원 함수)데이터 에 대한 접근 2. 보 기 는 표준 인 터 페 이 스 를 통 해 데 이 터 를 얻 고 표시 방식 을 정의 합 니 다. 3. 모델 은 신호 와 슬롯 을 사용 하여 보기 데이터 변 화 를 알 립 니 다. 4. 모델 의 데 이 터 는 모두 계층 구조 로 표 시 된 C. 모델 중의 색인 1. 모델 색인 시 데이터 와 보기 가 분 리 된 중요 한 메커니즘 2. 모델 중의 데 이 터 는 유일한 색인 을 사용 하여 3. QModelIndex 를 방문 합 니 다. Qt 중의 모델 색인 은 Qt 중의 모델 색인 입 니 다.클래스 - 구체 적 인 데 이 터 를 포함 하 는 접근 경 로 는 모델 을 가리 키 는 포인터 색인 에 있 는 줄 과 열 을 포함 합 니 다. 선형 모델 은 (row, column) 을 데이터 색인 모델 에서 데이터 색인 으로 사용 할 수 있 는 일반적인 방식 인 3 원 그룹 (row, column, parent) 모델 에서 데이터 색인 을 사용 할 수 있 습 니 다. D. Q: 서로 다른 보 기 는 같은 모델 의 데 이 터 를 어떻게 표시 합 니까?Qt 에서 표준 모델 은 데이터 캐릭터 의 개념 을 정의 합 니 다. 1. 모델 의 데 이 터 는 보기 에서 의 용도 가 다 를 수 있 습 니 다. 2. 모델 은 데이터 에 특정한 데이터 캐릭터 를 설정 해 야 합 니 다. 3. 데이터 캐릭터 는 보기 데 이 터 를 제시 하 는 역할 을 합 니 다.용도, 서로 다른 보 기 는 같은 기준 으로 데 이 터 를 표시 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기