You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt5.12下QML使用PieMenuStyle报__control未定义错误的解决咨询

报错原因
  • 核心问题:PieMenuStyle 是配套PieMenu控件使用的样式类,不能脱离PieMenu单独实例化,你直接将PieMenuStyle放在Window下,样式类找不到绑定的目标控件,就会报__control未定义、control为null的错误。
  • 次要问题:导入的Qt Quick Controls版本不兼容,QtQuick.Controls.Styles 1.4 是Qt Quick Controls 1系列的样式模块,和你导入的QtQuick.Controls 2.5(Qt Quick Controls 2)不匹配,且PieMenu属于Qt Quick Extras 1.x模块,你没有正确导入该模块。
修复步骤
  1. 调整导入语句,替换为Qt Quick Controls 1.4、Qt Quick Extras 1.4,和配套的Styles模块
  2. 先实例化PieMenu控件,再将你写的PieMenuStyle赋值给PieMenu的style属性
  3. 补充PieMenu的菜单项配置,验证样式效果
修复后完整代码
import QtQuick 2.12
import QtQuick.Window 2.12
// 替换为Controls 1.x版本,和Styles 1.4兼容
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
// 导入PieMenu所在的Extras模块
import QtQuick.Extras 1.4

Window {
    width: 640
    height: 480
    visible: true
    title: qsTr("Hello World")

    // 先实例化PieMenu控件
    PieMenu {
        id: pieMenu
        visible: true
        anchors.centerIn: parent
        // 给菜单加测试项
        MenuItem { text: "选项1" }
        MenuItem { text: "选项2" }
        MenuItem { text: "选项3" }
        MenuItem { text: "选项4" }

        // 将你写的样式赋值给style属性
        style: PieMenuStyle {
            shadowRadius: 0

            menuItem: Item {
                id: item
                rotation: -90 + sectionCenterAngle(styleData.index)

                Rectangle {
                    width: parent.height * 0.2
                    height: width
                    color: "darkorange"
                    radius: width / 2
                    anchors.right: parent.right
                    anchors.verticalCenter: parent.verticalCenter

                    Text {
                        id: textItem
                        text: control.menuItems[styleData.index].text
                        anchors.centerIn: parent
                        color: control.currentIndex === styleData.index ? "red" : "white"
                        rotation: -item.rotation
                    }
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者Hamsha m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 10:45:05