qt 防止 qdialog/window 随主窗口一起移动

qt prevent qdialog/window from moving with mainwindow

环境

问题

我在我的应用程序中打开了第二个 window。它的行为如我所愿,除了 如果应用程序中的 MainWindow 移动,这个 window 也会移动。这种行为是不受欢迎的(实际上更像是 "toxic and user-unfriendly")。

Qt 文档说不要从 moveEvent() 中调用 move(),无论如何 moveEvent() 只会在 window 停止移动后出现,甚至 while 移动,即使我成功使用它,也会导致第二个 window 移动并弹回,这将非常糟糕。

我想尝试覆盖 move() 而不是调用 QDialog::move(),但是那没有用,看来它不能被覆盖; rfview window 仍然跟随 mainwindow 左右。

可能是我打开window错了:

void MainWindow::xrfview()
{
    ttrfview = new rfview(this);
    uiframePlot = ttrfview->ui->framePlot;
    ttrfview->show();
    ttrfview->raise();
}

或者我把window定义错了:

class rfview: public QDialog
{
    Q_OBJECT

public:
    explicit rfview(QWidget *parent = 0);
    ~rfview();
}

或者两者兼而有之?

基本上,如果用户 drags/re-positions MainWindow,我 希望 rfview window 跟随。

ttrfview = new rfview(this)更改为ttrfview = new rfview()