我有一个自定义按钮,当我按下该按钮时,我想将文本字段的颜色更改为2秒钟,该文本字段的内部没有任何文本从默认更改为红色,然后弹出一个工具提示,提示您必须编写在前进之前有一些东西。
TextField {
id: textfield_derivat
placeholderText: qsTr("Write a comment here...")
horizontalAlignment: Text.AlignHCenter
}
CustomSelectionButton {
id: go_button
x: 378
y: 342
text: "Let's go!"
anchors.rightMargin: 19
anchors.bottomMargin: 17
anchors.bottom: parent.bottom
anchors.right: parent.right
height: default_button_height - 10
font.pointSize: default_font_size
MouseArea {
anchors.fill: parent
onClicked: {
if( check_text_field(textfield_derivat.text) === true )
{
/* code here */
}
else
{
textfield_derivat.text = "Please fill up the text"
textfield_derivat.background = "red"
}
执行此操作时出现此错误-错误:无法将QString分配给QQuickItem *
答案 0 :(得分:0)
这是因为background
是QQuickItem
而不是QString。您应该这样写(确保您的初始颜色是您喜欢的颜色):
TextField {
id: textfield_derivat
placeholderText: qsTr("Write a comment here...")
horizontalAlignment: Text.AlignHCenter
background: Rectangle {
id: txt_back
implicitWidth: 200
implicitHeight: 40
color: "white"
}
}
...
//textfield_derivat.background = "red"
txt_back.color = "red"
来自:https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#customizing-textfield
请注意,QML中有Animation
个可用的标记,以及使用State
和Transition
的标记,这可能会使解决方案更易读