2011-10-16 5 views
3

QListWidget이 있는데 목록 위젯에 나타나는 각 항목에 대한 인스턴스를 만들고있는 맞춤 위젯 클래스가 있습니다.QListWidget의 크기를 공간을 채우기 위해 크기 조정

그러나 목록 위젯에서 각 행의 사용 가능한 모든 공간을 채우기 위해 내 맞춤 위젯을 확장하는 방법을 알 수 없습니다.

내 사용자 정의 위젯은 Qt 디자이너에서 만들어지며 크기 힌트가 가로로 확장되도록 설정했지만 내 목록 위젯에 배치하면이를 수행하지 않습니다 (예 : 디자이너에서 위젯이 200px 넓이입니다. 목록 위젯은 실제로 400px 너비이지만 각 행의 맞춤 위젯은이 공간을 채우기 위해 확장되지 않습니다 ...)

어떻게 작성하나요?

감사합니다.

답변

2

QListWidget :: setItemWidget()을 사용하여 여기에 항목을 추가한다고 가정합니다. 그런 경우에는

, 당신은 일반적으로 사용자 정의 위젯의에 QListWidgetItem의 힌트 (sizehint)()를 설정해야합니다 갱신으로

myListWidget->setItemWidget(myListWidgetItem, customWidget); 
myListWidgetItem->setSizeHint(customWidget->sizeHint()); 
+0

예이 내가 뭘하는지입니다. 그러나 'listWidgetItem'의 sizeHint를 내 맞춤 위젯의 sizeHint로 설정하면 행이 전혀 없어집니다. (0, 0 또는 다른 값으로 설정된다고 가정합니다.) 아마 sizeHint가 내 맞춤 위젯에 맞지 않게 설정되었습니다 ... 정책은 확장으로 설정되었지만 생각은 어떻습니까? – jbrennan

+0

흠. 일반적으로 기본 크기 정책 (기본 설정/기본 설정이라고 생각하는)은 디자이너의 최상위 위젯에 충분합니다. UI 파일을 파고 들지 않고 구현할 필요가 없다면 다른 문제가 될 수 없습니다. – Chris

+0

문제가 무엇인지 알아 냈습니까? – Chris

0

, Qt는 5.2 있기 때문이다.

listWidget-setSizeAdjustPolicy(QListWidget::AdjustToContents);

이것은 QListWidget에게 (그 폭 현재 너비를 초과) 새 항목이 추가 될 때마다 크기를 조정할 것입니다 : 당신은 QListWidgetsizeAdjustPolicy가 설정할 수 있습니다.

참조 : http://doc.qt.io/qt-5/qabstractscrollarea.html#sizeAdjustPolicy-prop

관련 문제