Qt - 모드 보기 디자인
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. 데이터 캐릭터 는 보기 데 이 터 를 제시 하 는 역할 을 합 니 다.용도, 서로 다른 보 기 는 같은 기준 으로 데 이 터 를 표시 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.