1. 程式人生 > 其它 >Qt_QScrollArea 用法 QScrollArea不顯示 QScrollArea沒鋪滿

Qt_QScrollArea 用法 QScrollArea不顯示 QScrollArea沒鋪滿

技術標籤:QtQScrollArea用法QScrollArea程式碼生成QScrollArea

文章目錄

1.效果

我們實現一個元件鋪滿滾動區的效果
在這裡插入圖片描述
錯誤效果
在這裡插入圖片描述

2.簡述

在設計器裡邊用滾動區很簡單,先這樣然後這樣就可以了。。。
但是手寫程式碼沒理解的話就容易出現不顯示,加了佈局器沒拉伸的效果。如上沒鋪滿示例。
重要的就是這個
setWidgetResizable(true);

文件解釋
這個屬性用於控制滾動區域是否需要調整檢視小部件的大小。
如果這個屬性被設定為false(預設值),滾動區域表示它的小部件的大小。不管這個屬性是什麼,你都可以使用widget()->resize()以程式設計方式調整小部件的大小,滾動區域會自動調整到新的大小。

如果這個屬性設定為true,滾動區域將自動調整小部件的大小,以避免滾動條,或者利用額外的空間。

3.程式碼

    QWidget *pWidgetF = new QWidget(this);
    QVBoxLayout *pLayout = new QVBoxLayout(pWidgetF);
    pLayout->setContentsMargins(0,6,0,6);
    for(int i = 0 ; i < 50;i++){
        QPushButton *pBtn = new QPushButton(this);
        pBtn->setText
("按鈕"); pLayout->addWidget(pBtn); } pLayout->addStretch(); QScrollArea *pScrollArea = new QScrollArea(this); pScrollArea->setWidgetResizable(true);//!!!注意 不加這個widget不會被ScroolArea拉伸 而是原有大小 pScrollArea->setWidget(pWidgetF); pScrollArea->setStyleSheet
("QScrollArea{border:none; background:red;}");