Qt Android:如何显示本机文件对话框?
Posted
技术标签:
【中文标题】Qt Android:如何显示本机文件对话框?【英文标题】:Qt Android: How to show the native file dialog? 【发布时间】:2014-01-12 12:10:09 【问题描述】:我不确定这是否可能,但目前,当我显示打开文件对话框时:
QString file = QFileDialog::getOpenFileName(this);
显示的对话框不是 android 的原生对话框。
相反,它看起来像这样(它也没有最大化):
我正在使用适用于 Android 的 Qt 5.2.0。
【问题讨论】:
Qt/Necessitas - reasonable QFileDialog replacement/skin?的可能重复 我使用的是 Qt 5.2.0,它不是必需品,请记住。这是一个官方端口,而 Necessitas 是非官方的,也是一个较旧的版本。 @PavelStrakhov:necessitas 是 qt 4,问题有 Qt 5 标签以及对它的引用。 @sashoalm:小部件是古老的,主要是桌面技术......可以肯定的是,您不会从中获得更好的用户体验。为什么不是 QtQuick2/QtQuickControls 或者至少是 C++ 场景图? 我会尝试看看 Qt Quick 项目是否会有原生对话框,也许这就是我没有原生对话框的原因。 【参考方案1】:是的,这通常可以通过现在使用 Ministro 作为解决方法来实现。
详情请参阅以下错误报告:
No native controls on Qt 5.2 for Android, not in widgets nor in quick application
QFileDialog 似乎是由应该实现的 QPlatformTheme 指定的。
【讨论】:
我让应用程序按照这个答案安装 Ministro - ***.com/a/15735878/492336。不幸的是,安装它并没有使应用程序使用本机对话框。 看来 Ministro 根本没有让应用程序看起来像原生,并且您提供的链接中的 one of the comments 表明它没有实现。好吧,好吧,也许将来会有可能。 @sashoalm:嗯,你似乎认为 QtQuickControls 是 QtWidgets,而实际上它们不是。该评论说明了 QtQuickControls 的未来计划,但是 QFileDialog 在 QtWidgets 中。 我的应用程序没有使用 Qt Quick,而且 Ministro 仍然没有让它看起来像原生,事实上,它搞砸了主题,所以复选框根本不显示(只有它们的文本显示)。 我没有在任何地方指定平台主题,我只是将我的应用程序设置为use Ministro。如何指定平台主题?以上是关于Qt Android:如何显示本机文件对话框?的主要内容,如果未能解决你的问题,请参考以下文章