如何在QML TextField中隐藏蓝色锚点光标?
解决Qt 6安卓应用中蓝色锚点光标问题
你遇到的蓝色锚点是安卓系统原生的文本选择手柄,Qt 6在安卓平台默认启用了系统原生文本控件,这是和Qt 5的核心差异点。以下是两种可行解决方案:
方案1:禁用原生文本控件,改用Qt自定义绘制
通过设置styleHints关闭系统原生控件,即可用Qt的selectionHandleDelegate自定义锚点样式,同时cursorDelegate继续控制竖线光标:
TextField { // 禁用安卓原生文本控件 styleHints: TextEdit.NoNativeTextControls // 自定义竖线光标样式 cursorDelegate: Rectangle { color: "#ff4081" width: 2 } // 自定义选择锚点(对应原蓝色锚点) selectionHandleDelegate: Rectangle { color: "#ff9800" width: 12 height: 12 radius: 6 } }
方案2:修改安卓系统主题颜色
若想保留原生控件逻辑,仅调整锚点颜色,可在安卓项目的res/values/styles.xml中修改主题的colorControlActivated属性:
<style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar"> <!-- 替换为你需要的颜色值 --> <item name="android:colorControlActivated">#673ab7</item> <!-- 若要隐藏锚点,设置为透明 --> <!-- <item name="android:colorControlActivated">#00000000</item> --> </style>
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

