我目前正在用 QT 构建一个程序,其中我在一个框架中有几个自定义小部件,按下按钮后,更多的小部件将进入框架。我已经实现了自己的功能来在框架周围拖动和移动它们,一切正常,但问题是: 当我在屏幕上已经有一些小部件从它们的初始位置移动并且我去向布局添加另一个小部件时,整个布局会重置其下方每个小部件的位置。
我一直在使用 .move(x,y) 来移动它们,并使用 .addWidget(我的小部件)作为将小部件添加到布局的方式。
有什么办法可以防止这种情况发生,或者有什么变通办法吗?或者,如果没有别的,还有其他方法可以将它们添加到框架中,这样在添加新框架时它们不会自动四处移动吗?
最佳答案
我在某种程度上解决了我的问题,但这有点变通。 因为当新的小部件被添加到布局中时,布局会重新绘制它们,以便它们与设置的参数间隔开/对齐,我试图通过将其 x、y 坐标保存到每个小部件并移动来补偿此功能一旦将新的小部件添加到布局中,他们会立即返回。
最初的努力是徒劳的,因为布局以某种方式检测到这个或其他东西,并立即将它们移回。 然而,这就是我解决它的方法——我只是使用了一个 stackedWidget。当添加新的小部件时,它仍然会尝试以一定的间距自动定位每个小部件,但是我的小 for 循环将每个子小部件重新移回(我没有做任何更改)现在可以了。
关于c++ - 将自定义 qt 小部件动态添加到框架中,而无需每次都更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19969192/