背景
系统环境:win10
Qt版本:5.9.3
IDE:vs2015(update3)
需求:在主窗体上创建模态对话框,且显示居中
过程
QFileDialog.h中找到了静态方法getOpenFileName
于是直接调用,结果出来的模态框位置位于主窗体的左上角,去查询帮助文档发现第一个参数parent如果传入主窗体的QWidget指针就可以使模态框位于主窗体居中位置(看起来是不是好简单)。
结果是:exec()后第一次显示出的模态框位置居中,但是如果用鼠标移动模态框的位置,下次模态框会出现在上次关闭时的位置(即使程序关闭并重新启动)。
于是在网上寻找解决的办法:由于很多答案都是复制粘贴的,于是找了很久才找到两个看起来靠谱的答案
dialog.move(int x,int y);
和
dialog.setGeometry(int x,int y,int xW,int yW );
不过我们直接使用静态方法getOpenFileName没法获取dialog对象,为了保持代码的一致性,我把Qt5.9.3的源码下载下来,并通过源码中提供的内容修改成如下代码用于替换getOpenFileName&#x