我想从Qt 5.9(使用Qt Quick和一些c ++)编写的应用程序中的现有文件中选择一个图像。我试图使用FileDialog from QML(官方示例here),但当我在模拟器中运行它时,它看起来像这样:
我确实读过这篇博文http://amin-ahmadi.com/2015/12/08/how-to-open-android-image-gallery-in-qt/,它解释了如何使用本机代码进行图库选择,虽然我想知道是否同时Qt进展使得这样的任务以更直接的方式随时可用。
编辑:提示是FileDialog.shortcut documented here说:
包含用户图片或照片的目录。它始终是一种文件:URL;但在某些平台上,它将是专用的,因此FileDialog将被实现为图库浏览器对话框。
迟到总比不到好:
您的应用程序可能使用高DPI缩放,它会自动缩放具有更高DPI的显示器上的QtQuick.Controls 2。在main.cpp中:
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
基本上,应用中的px大小不再代表物理像素。一些(较旧的)Qt组件,其中之一是FileDialog,在该设置上无法正常工作。删除它应该可以解决您的问题,但可能会影响您应用的视觉外观。更多信息:https://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/
您可以尝试使用FolderListModel:https://doc.qt.io/qt-5/qml-qt-labs-folderlistmodel-folderlistmodel.html构建自己的FileDialog
还有一个QML组件可用于显示和选择单个或多个图像。你可以在这里找到更多信息:https://felgo.com/updates/release-3-2-0-qt-5-12-3-subscriptions
您也可以在手机上进行测试:https://felgo.com/web-editor/?snippet=77c7ad94