我知道有答案,但它们不能满足我的问题。它不适合我。
我有一个名为 PopUp 的简单自定义小部件。它继承了 SmartPanel,它是一个样式面板,只包含:
setWindowFlags( Qt::Window | Qt::FramelessWindowHint );
setAttribute(Qt::WA_QuitOnClose, true);
setAttribute( Qt::WA_TranslucentBackground );
它显示了一个窗口,该窗口应该出现在您按下的按钮上,该按钮将弹出或关闭。如果您进出它,它会自行关闭。
我试过了:
A)使其成为按钮的子元素,因此按钮移动到哪里,它就会移动。显然应该工作。出色地。根本不起作用...它始终停留在窗口左上角的 0,0 上。我什至移动窗口,按钮移动,弹出窗口保持不变......即使是它的孩子!
SmartPopUp::SmartPopUp( QWidget *parent): SmartPanel(parent)
{
setContentsMargins(30,10,20,20);
hide();
QVBoxLayout* lyt = new QVBoxLayout();
setLayout(lyt);
}
B) 保存在指向关联的链接中。小部件,以获取其位置。获取小部件的位置无法正常工作。不知道为什么...
SmartPopUp::SmartPopUp( QWidget* associatedWidget, QWidget *parent): SmartPanel(parent)
{
associatedWidget_ = associatedWidget;
setContentsMargins(30,10,20,20);
hide();
QVBoxLayout* lyt = new QVBoxLayout();
setLayout(lyt);
}
如何让它随着按钮位置的变化一起移动?