【问题标题】:Qt Android: How to show the native file dialog?Qt Android:如何显示本机文件对话框?
【发布时间】:2014-01-12 12:10:09
【问题描述】:

我不确定这是否可能,但目前,当我显示打开文件对话框时:

QString file = QFileDialog::getOpenFileName(this);

显示的对话框不是 Android 的原生对话框。

相反,它看起来像这样(它也没有最大化):

我正在使用适用于 Android 的 Qt 5.2.0。

【问题讨论】:

  • 我使用的是 Qt 5.2.0,它不是必需品,请记住。这是一个官方端口,而 Necessitas 是非官方的,也是一个较旧的版本。
  • @PavelStrakhov:necessitas 是 qt 4,问题有 Qt 5 标签以及对它的引用。
  • @sashoalm:小部件是古老的,主要是桌面技术......可以肯定的是,您不会从中获得更好的用户体验。为什么不是 QtQuick2/QtQuickControls 或者至少是 C++ 场景图?
  • 我会尝试看看 Qt Quick 项目是否会有原生对话框,也许这就是我没有原生对话框的原因。

标签: android c++ qt qt5 qfiledialog


【解决方案1】:

是的,这通常可以通过现在使用 Ministro 作为解决方法来实现。

详情请参阅以下错误报告:

No native controls on Qt 5.2 for Android, not in widgets nor in quick application

QFileDialog 似乎是由应该实现的 QPlatformTheme 指定的。

【讨论】:

  • 我让应用程序按照这个答案安装 Ministro - stackoverflow.com/a/15735878/492336。不幸的是,安装它并没有使应用程序使用本机对话框。
  • 看来 Ministro 根本没有让应用程序看起来像原生,并且您提供的链接中的 one of the comments 表明它没有实现。好吧,好吧,也许将来会有可能。
  • @sashoalm:嗯,你似乎认为 QtQuickControls 是 QtWidgets,而实际上它们不是。该评论说明了 QtQuickControls 的未来计划,但是 QFileDialog 在 QtWidgets 中。
  • 我的应用程序没有使用 Qt Quick,而且 Ministro 仍然没有让它看起来像原生,事实上,它搞砸了主题,所以复选框根本不显示(只有它们的文本显示)。
  • 我没有在任何地方指定平台主题,我只是将我的应用程序设置为use Ministro。如何指定平台主题?
猜你喜欢
  • 2011-01-09
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多