2011-02-25 3 views
2

나는 사용자에게 다양한 QLabels, .jpg 이미지 및 항목 목록 (예 : QListView)을 보여주는보기를 원한다. 나는 그들 모두가 함께 수직 스크롤 할 수 있기를 바랍니다. 다양한 위젯을 채우기위한 데이터는이보기를 표시하는 함수에 의해 설정됩니다. 필자는 GUI 디자이너를 사용하지 않고 코드로 구현하는 것을 선호합니다.QT에서 여러 위젯과 함께보기를 구현하는 가장 좋은 방법은 무엇입니까?

QWidget에서 상속 한 맞춤 위젯을 만들려고 생각했지만 구현하기가 어렵습니다. 이것을하는 것이 최선의 방법입니까?

진행 방법에 대한 예를 제공해 주시겠습니까? 이 수는 사전에

감사

답변

5
//Using QScrollArea 

#ifndef MYWIDGET_H 
#define MYWIDGET_H 

#include <QWidget> 
#include <QLabel> 
#include <QScrollArea> 
#include <QVBoxLayout> 

class MyWidget: public QWidget 
{ 
    Q_OBJECT 
public: 
    explicit MyWidget(QWidget *parent = 0); 

private: 
    QScrollArea *scrollArea; 
    QWidget *widget; 
    QLabel *label1; 
    QLabel *label2; 
    QLabel *label3; 
    QVBoxLayout *vLayout; 
}; 

#endif // MYWIDGET_H 


#include "mywidget.h" 

MyWidget::MyWidget(QWidget *parent) : 
    QWidget(parent) 
{ 
    scrollArea=new QScrollArea(this); 
    widget=new QWidget; 
    label1=new QLabel("Label1"); 
    label2=new QLabel("Label2"); 
    label3=new QLabel("Label3"); 

    label1->setFixedSize(200,100); 
    label2->setFixedSize(200,100); 
    label3->setFixedSize(200,100); 
    vLayout=new QVBoxLayout; 

    vLayout->addWidget(label1); 
    vLayout->addWidget(label2); 
    vLayout->addWidget(label3); 
    widget->setLayout(vLayout); 

    scrollArea->setWidget(widget); 
    scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
    scrollArea->resize(200,150); 
} 
+0

감사합니다,하지만 난 .. 그것은 자신의 스크롤이 있기 때문에, 그 까다로운 부분뿐만 아니라 QListView를 추가 할 필요가 있습니까? – gmpi

+0

예 가능합니다. –

+0

내 말은, "모든 사람들이 수직 스크롤 할 수 있습니다"라는 의미입니다. 창에서 두 개의 스크롤 막대 (다른 하나에 삽입 된 것)가있는 것이 아닙니다 ... – gmpi

관련 문제