pyqt qlistwidget 예제

Freenode의 #pyqt 채널에서 afief는 일반 문자열이 아닌 QListWidgetItem을 사용하여 목록 위젯에 항목을 추가하는 방법을 보여 주는 예제를 요청했습니다. 전체 예제를 실행하려면 이미지로 가득 찬 디렉토리가 있어야 합니다. 나는 예를 들어 내 리눅스 배포판의 /usr /share/icons 디렉토리에서 하나를 사용: 이 예제는 쉽게 보이지만, 주목할 만한 한 가지 미묘한 포인트가 있다: 목록 위젯 그것에 추가 된 각 항목의 소유권을 걸립니다. 즉, 항목을 두 개 이상의 목록 위젯에 추가할 수 없습니다. 우리는 우리의 표준 수입으로 시작, 아웃 응용 프로그램의 인스턴스를 만들고 qwidget 우리는 전에이 모든 코드를 본 적이, 우리는 우리의 QListWidget 다음 인스턴스, 우리는 우리의 목록 위젯을 채우기 위해 for 루프를 사용 하 여 마지막으로 텍스트로 숫자와 함께 각 항목에 추가 , 우리는 레이아웃에 위젯을 추가 창을 표시하고 응용 프로그램을 실행합니다. 이제 항목을 추가하는 다른 방법을 살펴 보자뿐만 아니라 QListWidget 사용자 정의 언제든지 당신은 사용자에게 지속적으로 표시해야 하는 항목의 목록이, 이것은 사용자가 여러 항목을 선택하는 경우 그것은 또한 유용 사용할 수있는 도구입니다 QlistWidget inhe QlistView에서 rits 및 내가 개인적으로 사용 하지 않은 다른 UI 클래스의 무리 사용자가 목록에서 하나의 항목을 선택 해야 하는 경우, QComboBox를 사용 하 여 고려 QListWidgetItem 를 사용자 지정할 수 있는 몇 가지 방법 중 하나는 아이콘을 추가 하 여 , 그래서 당신은 QIcons의 일부 이해를 얻는 것이 중요합니다. QIcon을 생성하는 방법에는 여러 가지가 있습니다. 당신은 그들을 만들 수 있습니다: 다음, 우리의 ImageFileList 클래스에 대 한 우리의 최종 코드: 다음, 현재 항목이 변경 될 때 호출 할 슬롯 함수를 만들어야 합니다. 그것은 인수, curr 및 prev, 현재 및 이전에 선택 된 항목을 취해야하며, 현재 항목의 텍스트로 항목의 텍스트를 설정해야합니다 : 내가 말했듯이, 꽤 넓은 선택. 테마 기반 아이콘 만들기는 잘 구축된 플랫폼 외부에서 문제가 됩니다. 윈도우와 OS X에 당신은 잘해야한다, 뿐만 아니라 당신은 그놈이나 KDE를 사용하여 리눅스에있는 경우, 하지만 당신은 덜 일반적인 데스크톱 환경을 사용하는 경우, 같은 OpenBox 또는 XFCE, Qt는 아이콘을 찾을 수 없습니다; 그 주위에 방법이 있다, 하지만 좋은 것 들, 그래서 당신은 텍스트만 붙어 있을 수 있습니다.

그리고 많은 다른 사람. 다른 방법에 대한 몇 가지 의견 : 첫째, 파일 기반 생성은 광범위하지만 무제한의 파일 형식 집합을 지원합니다. QImageReader().지원이미지형식()을 실행하여 버전 및 플랫폼에서 지원되는 것을 확인할 수 있습니다. 내 시스템에서 반환: 아래 스크린샷은 창에 PyQt 목록 상자를 보여줍니다. 우리는 우리가 이미지 디렉토리에 전달할 sys.argv[1]를 사용할 수 있도록 빈 목록을 전달, QApplication 개체를 만들 거 야: 또는 그것은 부모로 목록으로 만들 수 있습니다., 이 경우 자동으로 목록에 추가 됩니다: fil을 표시 하는 간단한 목록 위젯을 만들 수 있습니다. 디렉터리내의 모든 이미지에 대한 e-이름 및 축소판 아이콘입니다. 항목은 QListWidgetItem으로 만들 수 있을 만큼 간단하기 때문에 QListWidget에서 상속합니다. QListWidget은 분명히 매우 간단한 위젯이며 많은 옵션을 제공하지 않습니다. 충분 하지 않습니다 사용 사례많이 있다. 이러한 경우 다음 기사에서 설명할 QListView를 사용할 수 있습니다.

__name__ == `__main___` 블록인 경우 표준으로 래핑된 마지막 섹션은 다음과 Qt.py 없습니다. 클릭 이벤트는 클릭 한 방법으로 추가됩니다, self.listwidget.clicked.clicked.connect(self.clicked) 항목으로 QListWidget을 채우는 것은 쉽습니다. 항목이 일반 텍스트인 경우 단독으로 추가할 수 있습니다. 거의 모든 이미지가 할 것입니다. 위의 각 생성자 서명은 선택적으로 부모도 수락할 수 있습니다. 목록 상자 위젯은 QListWidget()으로 만들어집니다. 그런 다음 첫 번째 매개 변수가 인덱스인 self.listwidget.insertItem(0, “빨간색”)으로 항목이 추가됩니다.

Por
agosto 2, 2019