1

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

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

有什么方法可以防止这种情况,或者某种解决方法?或者如果没有别的,任何其他方式将它们添加到框架中,当添加新框架时它们不会自动移动?

4

1 回答 1

0

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

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

于 2013-11-14T23:39:36.830 回答