Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt QML更改TextField的样式';s菜单_Qt_Qml_Qtquick2_Qtquickcontrols - Fatal编程技术网

Qt QML更改TextField的样式';s菜单

Qt QML更改TextField的样式';s菜单,qt,qml,qtquick2,qtquickcontrols,Qt,Qml,Qtquick2,Qtquickcontrols,我想自定义我的应用程序的样式,我被困在TextField弹出菜单的样式上 TextField.style允许自定义TextField的外观,但不包含菜单的样式。据了解,有一个属性menu包含menu,因此我尝试了以下方法: TextField { menu.style: MenuStyle { //... } } 上面的代码抱怨属性style不存在,因此它不完全是菜单,它是用于创建菜单的组件,我不知道是否有办法通过它进入实际的菜单。文档只提到TextField.men

我想自定义我的应用程序的样式,我被困在
TextField
弹出菜单的样式上

TextField.style
允许自定义
TextField
的外观,但不包含菜单的样式。据了解,有一个属性
menu
包含
menu
,因此我尝试了以下方法:

TextField {
   menu.style: MenuStyle {
       //...
   }
}
上面的代码抱怨属性style不存在,因此它不完全是菜单,它是用于创建菜单的组件,我不知道是否有办法通过它进入实际的菜单。文档只提到
TextField.menu
可以设置为
null
以完全禁用它,并且不提供其他用例


那么,有没有办法进入
TextField
的菜单并更改其样式?

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

TextField{
文本:“此处文本”
anchors.centerIn:父对象
菜单:菜单{
风格:MenuStyle{
框架:矩形{
颜色:“绿色”
边框颜色:“紫色”
}
项目代表{
背景:矩形{
颜色:“黄色”
}
标签:文本{
颜色:styleData.selected?“红色”:“蓝色”
text:styleData.text
}
}
}
MenuItem{text:“Cut”}
MenuItem{text:“复制”}
}
}

有关
MenuStyle
属性的完整列表,请参见第页。

是否有方法在不重新实现菜单的情况下更改菜单样式?据我所知,在这个解决方案中,我需要为“剪切”、“复制”等提供我自己的操作。我认为这是不可能的<代码>文本字段。菜单是
组件
,它没有属性
样式
。谢谢@folibis,那么它有什么属性呢
TextField.menu.url
将我指向实现默认菜单的文件
Qt5.5.0/5.5/gcc\u 64/qml/QtQuick/Controls/Private/EditMenu\u base.qml
。我将它复制到我的项目中,对它做了一些修改,以接受自定义菜单样式,并将其绑定到我的文本字段。它很凌乱,但很有效。是的,看起来这是唯一的方法。@krzysiek:你想在iOS或Android上使用这个菜单吗?因为我没有成功。