gpt4 book ai didi

c++ - 代码在尝试打开 QDialog 时卡住

转载 作者:行者123 更新时间:2023-11-28 00:13:09 27 4
gpt4 key购买 nike

我正在尝试在 MSVS2010 Professional 中调试 c++/Qt5.5 代码。一个函数有以下几行代码,

/* Static method approach */
QString filters("Music files (*.mp3);;Text files (*.txt);;All files (*.*)");
QString defaultFilter("Text files (*.txt)");

QFileDialog::getSaveFileName(0, "Save file", QDir::currentPath(), filters, &defaultFilter);

对话框根本打不开,应用程序卡住。

我尝试了如下替代方案。

/* Direct object construction approach */
QFileDialog fileDialog(0, "Save file", QDir::currentPath(), filters);
fileDialog.selectNameFilter(defaultFilter);
fileDialog.exec();

但是,代码再次卡住在“fileDialog.exec()”处。因此,我仅使用这些语句创建了一个不同的新简单项目,并且它按预期工作。

这是不是我环境配置的问题。我尝试调试,但在进入上面的行时只是卡住了代码而没有任何错误。

最佳答案

这看起来像是 Qt 中的已知问题。 https://forum.qt.io/topic/49209/qfiledialog-getopenfilename-hangs-in-windows-when-using-the-native-dialog/8

解决方法是使用 QFileDialog::DontUseNativeDialog 标志,如下所示。

m_imageFile = QFileDialog::getOpenFileName(this, tr("Open Image"), QDir::homePath(), tr("Image Files (*.png *.jpg *.bmp)"), 0, QFileDialog::DontUseNativeDialog); //works

谢谢你的帮助!

关于c++ - 代码在尝试打开 QDialog 时卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31983412/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com