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