2010-02-11 6 views
1

내가 수정 한 드래그 앤 드롭 예제 소스에 스크롤을 추가하려고합니다. 이 예제는 몇 가지 드래그 가능한 QLabel 위젯을 그립니다. 더 많은 수의 다양한 길이의 위젯을 만드는 방식으로 수정하고있었습니다.Qt - QScrollArea 위젯 클리핑 내용

나는 main에 의해 호출 될 클래스를 만들었고 스크롤 위젯을 포함 할 것이고, 차례로 QLabels를 그리는 원래 위젯을 포함하게 될 것입니다. 이 클래스에있는 유일한 방법은 생성자이며, 여기에 그 구현의 :

layoutWidget::layoutWidget(QWidget *parent) : QWidget(parent){ 
    QScrollArea *scroll = new QScrollArea(); 
    QVBoxLayout *layout = new QVBoxLayout(); 

    //widget that draws the draggable labels 
    Widget *w = new Widget(); 

    scroll->setWidget(w); 
    scroll->setBackgroundRole(QPalette::Light); 

    layout->addWidget(scroll);  

    setLayout(layout); 
} 

내가 사용 setMinimumSize를() 위젯 생성자에. 프로그램을 실행하면 setMinimumSize()로 정의 된 영역 내부의 내용 만 그려지고 나머지는 잘립니다. 내가 놓친 게 있니?

답변

0

스크롤 영역 내의 위젯의 최소 크기는 내용보다 작으므로 해당 영역 내부의 내용 만 그립니다. setMinimumSize()에 더 큰 값을 사용하고 문제가 해결되었습니다.

1

위젯의 내용을 표시하려면 대부분 크기가 조정되어야합니다. 아마 일어나는 것은 당신이 설정 한 최소 크기가 그것이 얻는 유일한 크기라는 것입니다. 그래서 그것을 사용합니다. 레이아웃을 위젯에 추가하여 아이를 기반으로 크기를 동적으로 조정할 것을 제안합니다.하지만 드래그 가능한 내용으로는 잘 작동하지 않을 것이라고 생각합니다.

+0

하지만 이미 그렇게하지 않았습니까? –

+0

오, 지금 무슨 뜻인지 알 겠어. –