在Qt Android应用程序中使用Holo主题

时间:2014-01-12 20:02:19

标签: android c++ qt themes qt5

我有一个Qt Android应用程序,我想将其主题设置为Holo(即黑暗变体,而不是Holo Light)。这里是Holo Dark主题(左)和我的应用程序现在的样子(右)之间的比较:

enter image description here enter image description here

我正在使用Qt 5.2.0,而且我正在使用Qt / C ++(即不是QML),但我对任何有效的方式感兴趣,无论Qt版本还是QML或C ++。

编辑:我知道使用Ministro,它会使用“原生”主题为所有小部件创建pixmaps,但是可以告诉Ministro 使用哪个主题

3 个答案:

答案 0 :(得分:3)

修改:现在可以通过在AndroidManifest.xml中将android:theme="@android:style/Theme.Holo"添加到<application>,从Qt 5.4开始选择Holo Dark。

这适用于Qt 5.4,但不适用于Qt 5.2,使用Qt 5.2,无论您在清单中为android:theme指定了什么,主题始终是手机的默认主题。

因此,在AndroidManifest.xml中,找到<application>节点,并将其更改为:

<application android:theme="@android:style/Theme.Holo" ...

QtQuickControls暂时无法使用,但QtWidgets的版本为Qt 5.2。

前者在BogDan的TODO列表中为5.3。有关详细信息,请访问他的博客:

Qt on Android Episode 1

您可以在这里找到我朋友系统的几个截图。

非天然

enter image description here

本地

enter image description here

QtCreator

enter image description here

答案 1 :(得分:1)

使用Ministro你的应用程序获得了对Ministro App的依赖。我认为这是一个缺点,因为额外的依赖性将导致应用程序在启动时检查是否在设备上安装了Ministro是或否。如果未安装,则用户必须通过Android Play商店安装它。

不是使用Ministro,而是设置一个自定义样式表来设想全息主题。

QApplication::setStyleSheet(const QString & sheet)

GIT here上有一个存储库,它模仿各种android主题。不应该将holo .css文件很难适应Qt样式表(.qss)文件。

答案 2 :(得分:0)

根据Google Style guide,您需要将其设置为AndroidManifest.xml:

  

要为应用程序的所有活动设置主题,请打开   AndroidManifest.xml文件并编辑标签以包含   android:主题属性与样式名称。例如:

 <application android:theme="@android:style/Theme.Holo"/>

如果你想要灯光主题(默认的是黑暗的主题),你必须改为写这个:

 <application android:theme="@android:style/Theme.Holo.Light"/>