У меня есть класс, который подклассы QDialog
без переопределения exec()
, accept()
или reject()
и еще один, который вызывает класс Dialog
внутри его mousePaintEvent
:
void Canvas::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton){
if (dialog->isVisible()){
dialog->setModal(true);
dialog->move(QWidget::mapToGlobal(event->pos()));
//I connect the dialog's accepted signal to the CallingClass's slot, that uses the information taken from the dialog
connect(dialog, &Dialog::accepted, this, &CallingClass::slot);
dialog->exec();
}
}
if (dialog->isVisible()){
if (dialog->rect().contains(event->pos())){
dialog->reject();
}
}
}
Я пытался использовать существование диалога для проверки, но delete
на самом деле не сработало (я поставил его после dialog.reject()), я даже пытался использовать логическое значение, которое я снова установил в false после dialog.reject( ) в последнем if, но я начинаю думать, что после .reject() ничего не работает. Как мне поступить?