qt阻止qdialog / window与主窗口一起移动

时间:2016-12-24 15:07:11

标签: c++ qt qt4 qt4.8

的Env

  • OS X 10.6.8 ...及更高版本,Windows XP ...及更高版本。
  • Qt 4.7(必须是遗留问题,必须支持OS X 10.6.8,Qt5不会这样做)

问题

我在我的应用程序中打开了第二个窗口。它的行为与我想要的一样,除了,如果应用程序中的MainWindow移动,那么这个窗口也是如此。这种行为是不受欢迎的(实际上更像是"有毒和用户不友好")。

Qt文档说不要从moveEvent()中调用move(),并且无论如何moveEvent()只在窗口停止移动后显示,而移动时甚至不显示,即使我确实成功地使用它,导致第二个窗口移动并且弹回,这将非常糟糕。

我想过尝试重写move()而不是调用QDialog :: move(),但这不起作用,似乎无法覆盖; rfview窗口仍然跟随主窗口。

也许我错开了窗户:

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

或许我将窗口定义错误:

class rfview: public QDialog
{
    Q_OBJECT

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

或两者兼而有之?

基本上,如果用户拖动/重新定位MainWindow,我希望rfview窗口跟随。

1 个答案:

答案 0 :(得分:1)

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