c++ - 将自定义 qt 小部件动态添加到框架中,而无需每次都更改布局

标签 c++ qt layout

我目前正在用 QT 构建一个程序,其中我在一个框架中有几个自定义小部件,按下按钮后,更多的小部件将进入框架。我已经实现了自己的功能来在框架周围拖动和移动它们,一切正常,但问题是: 当我在屏幕上已经有一些小部件从它们的初始位置移动并且我去向布局添加另一个小部件时,整个布局会重置其下方每个小部件的位置。

我一直在使用 .move(x,y) 来移动它们,并使用 .addWidget(我的小部件)作为将小部件添加到布局的方式。

有什么办法可以防止这种情况发生,或者有什么变通办法吗?或者,如果没有别的,还有其他方法可以将它们添加到框架中,这样在添加新框架时它们不会自动四处移动吗?

最佳答案

我在某种程度上解决了我的问题,但这有点变通。 因为当新的小部件被添加到布局中时,布局会重新绘制它们,以便它们与设置的参数间隔开/对齐,我试图通过将其 x、y 坐标保存到每个小部件并移动来补偿此功能一旦将新的小部件添加到布局中,他们会立即返回。

最初的努力是徒劳的,因为布局以某种方式检测到这个或其他东西,并立即将它们移回。 然而,这就是我解决它的方法——我只是使用了一个 stackedWidget。当添加新的小部件时,它仍然会尝试以一定的间距自动定位每个小部件,但是我的小 for 循环将每个子小部件重新移回(我没有做任何更改)现在可以了。

关于c++ - 将自定义 qt 小部件动态添加到框架中,而无需每次都更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969192/

相关文章:

c++ - std::queue pop 推送线程安全

c++ - 检查单链表是否为空c++

qt - QML 组件中的别名方法

java - JDialog - "line break"在组件之间

c# - 将对话框置于窗口之上,但不置于所有内容之上

c++ - 模板对象的模板友元函数和命名空间

c++ - 无限Qt动画(不指定持续时间)

database - Qt 对 SQLite 的存储查询更快吗?

java - 当相应设置 target 和 min sdk 时,为什么 LayoutParams.MATCH_PARENT 没有运行时异常?

c++ - 避免基于反向范围的 for 循环实现的悬空引用