2017-05-19 20 views
0

프로젝트를 Qt 5.7에서 Qt 5.8로 업그레이드하고 싶습니다. 나는 QListWidget에 이미지를 보여주는 함수를 가지고있다.Qt 5.7 -> 5.8 QListwidget에 QIcon 추가

내 프로젝트에서 뷰어는 이미지에서 미리보기 이미지를 만들어 QIcon으로 변환합니다. QIcon을 생성 한 후에는 QListWidget에 새로운 QListwidgetItem을 삽입하여 추가합니다.

5.7에서는 잘 작동하지만 5.8에서는 축소판이 표시되지 않습니다.

QIcon tmpIcon(pathOfImage); 

ui.listWidget->addItem(new QListWidgetItem(tmpIcon, pathOfImage)); 

이 어떤 일이 발생하게 :

belows로는 코드

QListWidget

QIcon입니까? 5.8로 조정하려면 어떻게해야합니까?


  • 5.7에서는 작동 : 5.8에서

    In 5.7 it works!

  • 가 나던 :

    In 5.8 ....


하지만 지금은 작은 크기의 PNG가 5.8에 표시 될 수 있음을 발견했습니다.

나는 무엇이 문제인지 알지 못합니다. 어쩌면 이미지의 크기 나 형식일까요?

5.7에서는 QListwidget에 영향을주지 않았습니다!

+0

같은 속성 'uniformItemSizes' 어떻게 든이 문제로 이어지는'true로 설정되었습니다. –

+0

감사합니다. 나는 그것을 들여다 볼 것이다! –

+0

ui.listWidget-> setUniformItemSizes (false); 위의 코드를 사용했지만 작동하지 않았습니다. TT –

답변

0

실험을했습니다.

QListWidgetItem* newItem = new QListWidgetItem(); 
    newItem->setIcon(tmpIcon); 
    newItem->setText(pathOfImage); 

이 후, newItem (QListWIdgetItem)의 아이콘을 가져 와서 png에 저장하려고했습니다.

QIcon te2 = newItem->icon(); 
    QPixmap test = te2.pixmap(te2.actualSize(QSize(1024, 1024))); 
    QFile file1(te + "yourFile.png"); 
    file1.open(QIODevice::WriteOnly); 
    test.save(&file1, "PNG"); 

일반 JPG 파일을 저장할 수 없지만 작은 로고 png 파일 만 제대로 저장할 수 있습니다. 나는 QIcon과 QListWitgetItem 사이의 세트 프로세스가 주된 문제라고 생각한다.