02 Aug

python qlistwidget 예제

Freenode의 #pyqt 채널에서 afief는 일반 문자열이 아닌 QListWidgetItem을 사용하여 목록 위젯에 항목을 추가하는 방법을 보여 주는 예제를 요청했습니다. 이 예제는 쉬워 보이지만 목록 위젯은 추가된 각 항목의 소유권을 차지합니다. 즉, 항목을 두 개 이상의 목록 위젯에 추가할 수 없습니다. 전체 예제를 실행하려면 이미지로 가득 찬 디렉토리가 있어야 합니다. 예를 들어 내 리눅스 배포판의 /usr/share/icons 디렉토리에서 하나를 사용했습니다: QListWidget의 생성자는 많은 QWidget-descended 개체의 생성자와 같으며 선택적 부모 인수만 사용합니다. 부모도 받아들일 수 있습니다. 남은 것은 창을 표시하고 앱을 실행하는 것입니다: QListWidget 클래스는 목록에서 항목을 추가하거나 제거하는 항목 기반 인터페이스입니다. 목록의 각 항목은 QListWidgetItem 개체입니다. ListWidget은 다중 선택 가능하도록 설정할 수 있습니다. 디렉터리의 모든 이미지에 대한 파일 이름과 축소판 아이콘을 표시하는 간단한 목록 위젯을 만들어 보겠습니다. 항목은 QListWidgetItem으로 만들 수 있을 만큼 간단하기 때문에 QListWidget에서 상속합니다. 목록 상자 위젯은 QListWidget()으로 만들어집니다.

그런 다음 첫 번째 매개 변수가 인덱스인 self.listwidget.insertItem(0, “빨간색”)으로 항목이 추가됩니다. 또는 목록으로 만들 수 있으며, 이 경우 자동으로 목록에 추가됩니다: 이제 디렉터리에 있는 이미지 파일을 알아내는 방법이 있으므로 QListWidget에 추가하는 것은 간단한 문제입니다. 각 파일 이름에 대해 목록이 있는 QListWidgetItem을 만들고, 텍스트를 파일 이름으로 설정하고, 해당 아이콘을 파일에서 만든 QIcon으로 설정합니다. 가장 중요한 것은 사용자가 선택한 항목을 변경할 때 내보내는 현재ItemChanged 신호입니다. 해당 슬롯은 현재 및 이전에 선택된 QListWidgetItems인 현재 및 이전 인수의 두 인수를 받습니다. 또한 사용자가 항목을 클릭, 두 번 클릭, 활성화 또는 누를 때와 선택한 항목 집합이 변경될 때신호가 있습니다. QListWidgetItem을 사용자 지정할 수 있는 몇 가지 방법 중 하나는 아이콘을 추가 하는 것입니다., 그래서 QIcons의 일부 이해를 얻을 것이 중요 하다. QIcon을 생성하는 방법에는 여러 가지가 있습니다.

당신은 그들을 만들 수 있습니다: 당신은 또한 QListWidgetItem 클래스를 사용하여 약간 더 복잡한 목록 항목을 추가 할 수 있습니다. QListWidgetItem 격리에서 만들 수 있습니다 하 고 목록의 addItem 메서드를 사용 하 여 나중에 목록에 추가: 클릭 이벤트는 클릭 하는 방법으로 추가 됩니다., self.listwidget.clicked.connect.connect(self.clicked) 목록 상자 (QListWiget) 몇 가지 옵션을 제공 합니다. 항목을 클릭할 수 있습니다. 노래 재생 목록을 생각해 보십시오. 콤보 박스와는 달리 가능한 모든 옵션을 보여줍니다. 그리고 그것의 setIcon 메서드를 사용 하 여 QIcon의 인스턴스에 설정 된 아이콘: 현재 선택 된 항목을 얻으려면, 현재에 의해 전달 된 인수를 사용할 수 있습니다ItemChanged 신호 또는 QListWidget의 현재항목 메서드를 사용할 수 있습니다. 이것은, 다음, 우리의 ImageFileList 클래스에 대한 우리의 최종 코드입니다 : 다음은 QListWidget에 의해 방출 된 신호입니다 – 그리고 많은 다른 사람. 다른 방법에 대한 몇 가지 의견 : 첫째, 파일 기반 생성은 광범위하지만 무제한의 파일 형식 집합을 지원합니다. QImageReader().지원이미지형식()을 실행하여 버전 및 플랫폼에서 지원되는 것을 확인할 수 있습니다. 내 시스템에서 반환: 우리의 마지막 섹션, 표준에 래핑 하는 경우 __name__ == `__main___` 블록, 다음, 다음: 다음, 현재 항목이 변경 될 때 호출 할 슬롯 함수를 만들 필요가; 현재 및 이전에 선택된 항목인 인수, curr 및 prev를 가져가야 하며, 현재 항목의 텍스트로 항목의 텍스트를 설정해야 합니다. : 그래서 우리가 행동에 그것을 볼 수 있도록 간단한 창에 우리의 ImageFileList를 넣어 보자.