簡體   English   中英

Qt-QScrollArea小部件剪輯內容

[英]Qt - QScrollArea widget clipping contents

我正在嘗試將滾動添加到修改后的拖放示例源中。 該示例僅繪制了幾個可拖動的QLabel小部件。 我正在以某種方式修改它,即會創建大量各種不同長度的小部件。

我創建了一個由main調用的類,其中包含滾動小部件,而滾動小部件又包含繪制QLabel的原始小部件。 此類的唯一方法是構造函數,這是其實現:

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);
}

我在Widget構造函數上使用setMinimumSize()。 當我運行程序時,僅繪制setMinimumSize()定義的區域內的內容,其余部分被裁剪掉。 我想念什么嗎?

您的窗口小部件很可能需要將其自身調整為完整大小以顯示其內容。 可能發生的情況是,您設置的最小大小是它獲得的唯一大小,因此它使用該大小。 我建議向小部件中添加布局,以根據其子級來動態調整其大小,但我認為這對於可拖動的內容不太適用。

滾動區域內的小部件的最小尺寸小於其內容,因此僅繪制該區域內的內容。 我為setMinimumSize()使用了較大的值,問題已解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM