Qt Quick Controls 2 启动画面

Posted

技术标签:

【中文标题】Qt Quick Controls 2 启动画面【英文标题】:Qt Quick Controls 2 Splash Screen 【发布时间】:2016-12-09 22:15:56 【问题描述】:

我正在使用 Qt Quick Controls 2 开发移动应用程序,并希望在应用程序初始化时显示启动画面。目前,这是用户在应用启动时看到的内容:

    以应用名称作为标题的深色背景。 空白的白色背景。 应用程序窗口。

按此顺序购买 android 6 Marshmallow 智能手机。如果我将启动画面添加到应用程序窗口中,可能是在堆栈视图中,然后在初始化时转换到实际内容,(1)和(2)仍然会保留,对吗?有什么方法可以告诉 Qt 显示启动画面而不是 (1) 和 (2),或者至少不是 (1)?

【问题讨论】:

【参考方案1】:

首先在_yourProject_/android/res/drawable创建一个splash.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#353535"/>
        </shape>
    </item>
    <item>
         <bitmap android:src="@drawable/icon" android:gravity="center" />
    </item>
</layer-list>

这将设置启动屏幕背景颜色和将在屏幕上居中的图标。

然后在/android/res/values创建一个theme.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="AppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <item name="android:windowBackground">@drawable/splash</item>
    </style>
</resources>

然后在android清单文件中,在&lt;activity android:configChanges=这一行标签设置后添加android:theme="@style/AppTheme",然后向下滚动到&lt;!-- Splash screen --&gt;部分并取消注释并修改该行:

<meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/splash"/> 

#353535 颜色替换为应用程序窗口设置的任何颜色以实现平滑过渡。图片是可选的。

我刚刚测试过它并且它有效。也许其他人能够为 ios 提供解决方案。

【讨论】:

这并没有解决前两个问题;为此,我认为您需要特定于 Android 的代码。如果可以在带有 Qt 的原生 Android 应用程序中使用,那么更有趣的是这样的:bignerdranch.com/blog/splash-screens-the-right-way @MrEricSir - 是的,我最初误解了这个问题。 抱歉消失了。我现在才有机会看这个。我正在使用 Qt (Quick Control 2),所以我对如何合并它有点困惑。构建项目后,我可以看到android清单文件,但仅此而已,而且它显然每次都会被覆盖。 @someguy - 您正在编辑错误的清单。您需要项目文件夹中的那个,而不是每次构建时保存到构建文件夹中的那个。 @ddriver:所以所有相关的 android 文件都将在 project root/android 文件夹下,但是如何让 Qt 使用这些文件?编辑:哦,好吧,所以它们是由 Qt Creator 自动添加的。我只使用文本编辑器和命令行。将看看 Qt Creator 做了什么。

以上是关于Qt Quick Controls 2 启动画面的主要内容,如果未能解决你的问题,请参考以下文章

Qt Quick Controls 2.14 如何设置ScrollView的样式

Qt Quick Controls 2 上 SpinBox 的后缀选项

Qt Quick Controls 2 TextArea`tabChangesFocus`,如何使用Tab键更改焦点,而不是键入Tab字符

QT开发(五十五)———Qt Quick Controls

Qt Quick.2 TextField 的操作系统编辑/粘贴菜单

如何设置Qt Quick Controls2的风格