QListWidget에 QListWidgetItem의 목록이 있습니다 (Hor 스크롤 막대는 항목 수가 많을수록 많습니다). 각 QListWidgetItem에는 QPixmap이 데이터로 포함됩니다 (임의의 값으로 축소). 내 요구 사항은 QPixmap을 클릭하여 강조해야합니다 (브러쉬 폭 10의 반올림 된 사각형). 각 QListWidgetItem을 QItemDelegate에 위임합니다. 여기에 몇 가지 질문이 있습니다.QListWidget에있는 QPixmap에서 페인팅
해당 QListWidgetItem이 선택되었을 때 QPixmap의 둥근 사각형을 칠하는 방법은 무엇입니까?
위의 페인트 이벤트는 QPixmap을 클릭 할 때 발생합니다 (QListWidgetItem의 다른 부분에는 해당되지 않음). QPixmaps의 크기가 다르므로 QListWidgetItem의 QPixmaps의 위쪽과 아래쪽 부분이 비어있을 것이며 그곳을 클릭하면 ItemDelegate가 트리거됩니다. 이 선택을 제거하는 방법?
감사보고해야합니다. ListWidget에서도 이와 비슷한 작업을했습니다. Delegate :: paint() 메서드에서 수정 된 Qpixmap을 listItem으로 페인팅하는 동안 QPixmap이 그려지는 좌표를 지정해야합니다. 제 질문은 QPixmap이 중심에 정렬되어있어 그러한 좌표를 찾는 방법입니다. option.rect(). x() 및 y()는 항목의 왼쪽 위 좌표 값을 제공합니다. 센터를 칠하는 방법이 있습니까? 또는 수동으로 계산해야합니까? –
나는 당신이 뭘하는지 알아 내는데 어려움을 겪고있다 :-) 아마도 당신은 QPixmap으로하고있는 일과 더 구체적 일 수도 있고, 무엇을 위해서라도 좌표를 필요로 할 수도있다. –
실제 문제를 알려주십시오. 각 listItem에는 QPixmap이 있습니다. 각 QPixmap은 가변 크기입니다. listItem을 클릭하면 해당 그림 주위에 둥근 사각형을 그려야하는 방식으로 해당 그림을 강조 표시해야합니다. 그래서 Delegate paint 메서드에서 데이터 (QPixmap)를 가져오고 그 주위에 둥근 사각형을 그립니다. 그런 다음 ListWidgetItem에서 업데이트 된 QPixmap을 가운데 정렬로 그립니다. QPixmap을 그리기 위해 QRect를 지정해야합니다. 여하튼 우리는 수동으로 중심 맞춤을위한 지오메트리를 계산할 수 있지만 더 좋은 접근 방법이 있는지 알고 싶습니다 –