pyqt5 qlistview 예제

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

수정된 예제에 대한 전체 코드는 다음과 같습니다. 자습서의 소스 코드는 Qt의 예제/위젯/자습서/modelview 디렉토리에 있습니다. 또한 모델의 구조변경을 나타내는 많은 수의 신호가 있습니다. 이들은 모두 QAbstractItemModel에서 상속되며 여기에서 검사 할 수 있습니다. 우리는 QAbstractItemModel의 이후 토론에서 그들에 대해 더 많은 이야기 할 것이다, 이는 전부 다른 주제입니다; 현재 예제에서는 그 중 어느 것이 필요하지 않습니다. (파일 소스: 예제/위젯/자습서/모델뷰/1_readonly/main.cpp) 이미 만든 몇 가지 특수 한 유형의 모델이 있습니다. 예를 들어, QStandardItemModel은 QListWidget에 대한 지난 할부토론에서 보았던 것보다 다소 큰 제한된 기능을 제공합니다. 텍스트 및 아이콘 외에도 끌어서 놓기 기능, 확인 가능한 항목 및 기타 기능을 제공합니다. 사용자 지정 동작은 목록 데이터에 대한 범용 모델인 QAbstractListModel에서 상속하여 구현할 수 있습니다. 이 예제에서는 테이블 셀에 입력된 값을 반복하여 창 제목을 콘텐츠로 자동으로 채우는 응용 프로그램을 빌드합니다. 창 제목에 쉽게 액세스할 수 있도록 QMainWindow에 QTableView를 넣습니다. 목록 및 모델을 만드는 것은 간단한 부분입니다.

목록의 주요 작업은 모델을 만들고 채우는 데 있습니다. 예를 들어 목록에 대한 항목을 만들어 보겠습니다. 설명서는 약간 불투명하며 먼저 작동하는 것을 보고 어떻게 작동하는지 파악하는 것을 선호합니다. 다음 예제에서는 메시지 상자를 팝업하기 위해 캡처되는 클릭 이벤트를 보여 주며 있습니다. 지금까지의 모든 예제에서 데이터는 셀의 텍스트 또는 확인란으로 표시되고 텍스트 또는 확인란으로 편집됩니다. 이러한 프레젠테이션 및 편집 서비스를 제공하는 구성 요소를 대리자라고 합니다. 뷰에서 기본 대리자를 사용하기 때문에 대리자 작업을 시작할 뿐입니다. 그러나 다른 편집기 (예 : 슬라이더 또는 드롭 다운 목록)를 원한다고 가정하거나 데이터를 그래픽으로 표시한다고 상상해보십시오. 별이 등급을 표시하는 데 사용되는 별 대리자라는 예제를 살펴 보겠습니다: 모델/뷰 응용 프로그램을 개발하려면 어디서부터 시작해야 합니까? 간단한 예제로 시작하여 단계별로 확장하는 것이 좋습니다.