qt qtableview 예제

다음은 모델 / 뷰 프로그래밍의 다른 측면을 보여 7 매우 간단하고 독립적 인 응용 프로그램입니다. 소스 코드는 예제/위젯/자습서/modelview 디렉토리 내에서 찾을 수 있습니다. (파일 소스: 예제/위젯/자습서/모델뷰/1_readonly/main.cpp) 이 자습서에는 프로젝트에 편집하고 통합할 수 있는 예제 코드가 포함되어 있습니다. 자습서의 소스 코드는 Qt의 예제/위젯/자습서/modelview 디렉토리에 있습니다. 어댑터의 또 다른 예는 QCompleter입니다. Qt는 QComboBox 및 아래와 같이 QLineEdit와 같은 Qt 위젯에서 자동 완성을 제공하기위한 QCompleter를 가지고 있습니다. QCompleter는 모델을 데이터 원본으로 사용합니다. 모델/뷰 응용 프로그램을 개발하려면 어디서부터 시작해야 합니까? 간단한 예제로 시작하여 단계별로 확장하는 것이 좋습니다. 이렇게 하면 아키텍처를 훨씬 쉽게 이해할 수 있습니다. IDE를 호출하기 전에 모델/뷰 아키텍처를 자세히 이해하려고 노력하는 것은 많은 개발자에게 덜 편리하다는 것이 입증되었습니다. 데모 데이터가 있는 간단한 모델/보기 응용 프로그램으로 시작하는 것이 훨씬 쉽습니다. 한번 사용해 보세요! 아래 예제의 데이터를 사용자 고유의 데이터로 바꾸기만 하면 됩니다.

다음 목록은 위에 나열된 처음 세 권에 포함된 예제 프로그램의 개요를 제공합니다. 그들 중 일부는 유사한 응용 프로그램을 개발하기위한 아주 좋은 템플릿을 합니다. 지금까지의 모든 예제에서 데이터는 셀의 텍스트 또는 확인란으로 표시되고 텍스트 또는 확인란으로 편집됩니다. 이러한 프레젠테이션 및 편집 서비스를 제공하는 구성 요소를 대리자라고 합니다. 뷰에서 기본 대리자를 사용하기 때문에 대리자 작업을 시작할 뿐입니다. 그러나 다른 편집기 (예 : 슬라이더 또는 드롭 다운 목록)를 원한다고 가정하거나 데이터를 그래픽으로 표시한다고 상상해보십시오. 별이 등급을 표시하는 데 사용되는 별 대리자라는 예제를 살펴보겠습니다. 우리는 모델을 만들기 위해 위의 예제에서 데이터를 래핑했습니다. 이번에는 QAbstractItemModel을 구현하는 계층 적 데이터에 대한 컨테이너인 QStandardItemModel을 사용합니다. 트리를 표시하려면 QStandardItemModel은 텍스트, 글꼴, 확인란 또는 브러시와 같은 항목의 모든 표준 속성을 보유할 수 있는 QStandardItem로 채워져야 합니다. 데모는 코드에 대해 연습이 제공되지 않는다는 점을 제외하면 예제와 유사합니다. 데모는 일반적으로 예제보다 기능이 더 많이 있습니다.

이 작은 예제에서는 모델의 수동 특성을 보여 줍니다. 모델이 언제 사용될지 또는 어떤 데이터가 필요한지 알 수 없습니다. 뷰가 요청할 때마다 데이터를 제공하기만 하면 됩니다. 행과 열의 수는 MyModel::rowCount() 및 MyModel::columnCount()에서 제공됩니다. 뷰가 셀의 텍스트가 무엇인지 알아야 하는 경우 MyModel::data() 메서드를 호출합니다. 행 및 열 정보는 매개 변수 인덱스로 지정되고 역할은 Qt::DisplayRole로 설정됩니다. 다른 역할은 다음 섹션에서 다룹니다. 이 예제에서는 표시해야 하는 데이터가 생성됩니다. 실제 응용 프로그램에서 MyModel에는 모든 읽기 및 쓰기 작업의 대상으로 사용되는 MyData라는 멤버가 있습니다. 여러 뷰에 대해 데이터 원본과 동일한 모델을 사용할 수 있습니다. 사용자가 뷰 중 하나를 통해 모델을 편집하면 다른 뷰는 변경 내용을 즉시 반영합니다.

테이블 모델 예제에서는 작동 방식을 보여 주며, 이 예제에서는 작동 방식을 보여 주실 수 있습니다. 관계형 테이블 모델 예제에서는 QSqlRelationalDelegate와 함께 QSqlRelationalTableModel을 사용하여 테이블에 외래 키 지원을 제공하는 방법을 보여 줍니다. 뷰 클래스는 맨 위에 헤더를 표시하여 열에 레이블을 지정합니다. 헤더 텍스트를 변경하려면 모델에서 setHeaderData()를 호출합니다. 헤더의 레이블은 기본적으로 테이블의 필드 이름으로 설정됩니다.

Previous post

preparestatement insert 예제

Next post

sed 치환 예제

sovab-presse

sovab-presse