Оболочка
- OS X 10.6.8 ... и выше, Windows XP ... и выше.
- Qt 4.7 (должно быть, устаревшие проблемы, OS X 10.6.8 должна поддерживаться, Qt5 этого не сделает)
Проблема
Я открыл второе окно в своем приложении. Оно ведет себя так, как я хочу, за исключением того, что если MainWindow в приложении перемещается, то и это окно перемещается. Такое поведение нежелательно (на самом деле больше похоже на «токсичное и недружелюбное к пользователю»).
Документы Qt говорят не вызывать move() из moveEvent(), и в любом случае 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
окно следовало за ним.