Qt-QDialog非模态置于窗口之上且操作主窗口不隐藏dialog的方法
方法为:
QDialog* dialog = new QDialog;
dialog->setParent(this, dialog->windowFlags());
dialog->show();
dialog->raise();
QDialog继承自QWidget,setParent
方法会重置其windowFlags,因此我们将其原始windowFlags传入作为参数以保留原始属性。不传入将导致dialog显示异常。
show()
以非模态显示dialog,是我们能操作dialog以外的其他窗口。
raise()
将当前widget提升到parent widget stack的最顶层,这使我们在操作其他窗口时,也能保持dialog显示在其他窗口的上方而不会被遮盖住。