2011-02-25 64 views
2

我想看看我向用戶展示各種QLabels,.jpg圖像和項目列表(例如QListView)。我希望所有這些可以垂直滾動。填充各種小部件的數據將由顯示此視圖的函數設置。我更喜歡在代碼中實現它,而不使用GUI Designer。在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 2011-03-15 23:09:39

+0

是的,這是可能的。 – 2011-03-16 06:22:52

+0

我的意思是,「所有這些都可以垂直滾動到一起」,而不是在窗口中插入兩個滾動條(一個插入其中)... – gmpi 2011-03-16 15:04:28

相關問題