我目前正在QT中构建一个程序,其中我在一个框架中有几个自定义小部件,按下按钮会进入框架。我已经实现了自己的功能来拖动它们并在框架周围移动它们,一切正常,但问题出在这里: 当我已经在屏幕上已经从其初始位置移动了一些这些小部件并且我将另一个小部件添加到布局时,整个布局将重置其下方每个小部件的位置。
我一直在使用.move(x,y)移动它们,以及.addWidget(我的小部件)作为将小部件添加到布局的方式。
有什么方法可以阻止这种情况,或某种方法吗?或者,如果没有别的,还有其他任何方式将它们添加到框架中,当添加新的框架时它们不会自动移动?
答案 0 :(得分:0)
我在某种程度上解决了我的问题,但这是一个解决方法。 因为当新的窗口小部件被添加到布局时,布局会重新绘制它们,以便它们与设置的参数间隔/对齐,我试图通过向每个窗口小部件保存其x,y坐标并移动来补偿此功能一旦将新的小部件添加到布局中,它们立即返回。
最初的努力是徒劳的,因为SOMEHOW布局检测到这个或什么,并立即将它们移回。 然而,这就是我解决它的方式 - 我只是使用了stackedWidget。当添加新的小部件时,它仍然会尝试自动定位每个小间距,但我的小循环重新移动每个子小部件(我没有改变)现在可以正常工作。