【问题标题】:Add a QScrollArea to a QFrame将 QScrollArea 添加到 QFrame
【发布时间】:2016-06-22 13:30:12
【问题描述】:

我正在开发自己的小部件,它是一种树视图,但我遇到了一个小问题:我的项目是 QPushButtons,它们位于 QFrame 中,而 QFrame 位于 scrollArea 中。当我部署我的项目时,滚动条不会出现,我也无法使用我的滚轮。我试图动态更改我的 QFrame 的大小,但它不起作用。我在网上搜索过,但没有找到任何真正好的答案。

My widget

My UI

如果有人有解决问题的线索,我很感兴趣!

谢谢!

【问题讨论】:

  • 请添加相应的代码!
  • 哪一部分?因为我有 5 个类和大约 1000 行。我有一个类来创建我的树,一个代表我的项目,一个用于动画这些项目,一个连接到数据库,最后一个将所有这些导出为 QtDesigner 中的小部件
  • this answer help? “如果有人有解决问题的线索,我很感兴趣!”这可能很难,因为你做错了什么并不明显。我只知道我可以做对,但这没有帮助,对吧?我们真的需要看到SSCCE
  • 如果您的小部件为您混淆,您无需在 Designer 中设计您的小部件。可能以编程方式进行可能会更容易,更简洁。至于代码的最小化:不要问哪个部分。发布足以重现问题的内容,仅此而已。例如。不要做任何数据库 I/O,使用一些静态或快速生成的数据。一个理想的问题是具有单个文件 main.cpponly,任何人都可以获取、编译和运行以重现您的问题。
  • 您好 Kuba,感谢您的回复,我会查看您的第一个链接。 “这可能很难,因为你做错了什么并不明显”,我也不知道我做错了什么。当我部署我的树时,我有将近 600 个项目,你需要整个代码来重现这个问题。我的代码运行良好,只是当一个项目离开 QFrame 时,滚动条不会出现。而且我必须使用数据库,我有很多信息要处理,比如链接、图像和其他数据

标签: c++ qt qscrollarea qframe


【解决方案1】:

终于找到解决办法了:

ui->scrollArea->setWidgetResizable(true);
QGridLayout *gridLayout = new QGridLayout(ui->scrollAreaWidget);
ui->frame->setFixedHeight(ui->scrollArea->height());
gridLayout->addWidget(ui->frame,0,0,1,1);

并在我部署节点时更改 fixedHeight

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-04
    相关资源
    最近更新 更多