[英]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.