我正在尝试将滚动添加到我修改的拖放示例源。该示例简单地绘制了几个可拖动的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()定义的区域内的内容,其余部分将被剪掉。我错过了什么吗?
答案 0 :(得分:1)
您的小部件很可能需要将自身调整为完整大小才能显示其内容。可能发生的是,您设置的最小尺寸是它获得的唯一尺寸,因此它使用它。我建议在窗口小部件中添加一个布局,使其根据子窗口动态调整大小,但我认为这对于可拖动的内容不会很好。
答案 1 :(得分:0)
滚动区域内小部件的最小尺寸小于其内容,因此仅绘制该区域内的内容。我为setMinimumSize()使用了更大的值,问题解决了。