繁体   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