Envкварты предотвратить QDialog/окно от перемещения с MainWindow
- OS X 10.6.8 ... и позже, Windows XP ... и позже.
- Qt 4.7 (должно быть, унаследованные проблемы, OS X 10.6.8 должны быть поддержаны, Qt5 не делать)
Проблема
Я открыл второе окно в моем заявление. Он ведет себя так, как я хочу, , за исключением, что если MainWindow в приложении перемещается, то и это окно. Это поведение нежелательно (на самом деле больше похоже на «токсичный и недружелюбный пользователь»).
в Qt документы говорят не вызывать движение() из 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
.
ТРТ с: ttrfview = новый rfview(); – eyllanesc
@eyllanesc да, это работает под OS X, моя среда для разработчиков. Пожалуйста, сделайте это ответом, и я дам галочку «ol». Спасибо за очень быстрое решение. – fyngyrz