QML更改TextField菜单的样式

时间:2015-07-20 19:21:12

标签: qt qml qtquick2 qtquickcontrols

我想自定义应用程序的样式,并且我坚持使用TextField弹出式菜单的样式。

TextField.style允许自定义TextField的外观,但它不包含菜单的样式。根据{{​​3}},有一个属性menu包含Menu所以我尝试过这样的事情:

TextField {
   menu.style: MenuStyle {
       //...
   }
}

上面的代码抱怨财产style不存在,因此它不完全是Menu,而Component用于创建菜单,我不会# 39;知道是否有办法将它通过实际的Menu。文档仅提及TextField.menu可以设置为null以完全禁用它,并且不提供其他用例。

那么有没有办法进入TextField的菜单并改变它的风格?

1 个答案:

答案 0 :(得分:1)

那么你应该在这里发布所有相关代码。无论如何,您无法单独定义TextField菜单及其样式。请参阅下面的示例,自定义Menu样式并将其添加到TextField内联:

TextField {
    text: "text here"
    anchors.centerIn: parent
    menu: Menu {
        style: MenuStyle {
            frame: Rectangle {
                color: "green"
                border.color: "purple"
            }
            itemDelegate {
                background: Rectangle {
                    color: "yellow"
                }
                label: Text {
                    color: styleData.selected ? "red" : "blue"
                    text: styleData.text
                }
            }
        }
        MenuItem { text: "Cut" }
        MenuItem { text: "Copy" }
    }
}

有关MenuStyle属性的完整列表,请参阅this页面。