我正在尝试创建一个显示一些信息的小部件。每个信息都是一个 QWidget,其中包含多个带有文本的 QLabel(信息)。我的想法是将多个(这些数组)放入 QScrollArea 中,以便用户可以查看它们上下滚动。以下代码:
InfoWidget::InfoWidget(QWidget* parent) : QWidget(parent){
widgets = new QVector<MarkerInfoWidget*>();
csv_data = 0;
csv_velocity = 0;
labels = 0;
infoWidgetLayout = new QVBoxLayout(this);
setLayout(infoWidgetLayout);
scrollArea = new QScrollArea(this);
scrollWidgetLayout = new QVBoxLayout(scrollArea);
scrollArea->setLayout(scrollWidgetLayout);
infoWidgetLayout->addWidget(scrollArea);
//Test
QString name = "TEST";
for(int i=0; i<10; i++){
MarkerInfoWidget* markerWidget = new MarkerInfoWidget(name, scrollArea);
scrollWidgetLayout->addWidget(markerWidget);
widgets->append(markerWidget);
}
}
MarkerInfoWidget 和 InfoWidget 都扩展了 QWidget。我得到的只是一个文本很小的框:
如果我将它拖出并重新调整大小,它会正确显示:
我注意到的是,如果我将它重新调整得太小,它不会生成滚动。我需要什么来解决这个问题?