所有Qt快速按钮控制状态的自定义样式

时间:2014-11-12 22:26:42

标签: c++ qt qml

我正在寻找一种使用QML为按钮的所有状态创建自定义样式的方法。到目前为止,我只找到了以下方法来创建一个可以应用于多个按钮的样式

Component {
  id: leftButtonStyle

  ButtonStyle {

      background: Rectangle {
          width: control.width
          height: control.height
          color: "black"
      }

      label: Text {
          font.family: "Helvetica"
          font.pointSize: 10
          color: "#949599"
          text: control.text
      }
  }

}

Button {
    text:"Button One"
    style: leftButtonStyle
}

Button {
        text:"Button Two"
        style: leftButtonStyle
}

但是这只会改变按钮的正常状态,并且在按下按钮时找不到给出样式的方法。

2 个答案:

答案 0 :(得分:4)

ButtonStyle中,您可以使用control.hoveredcontrol.pressed来确定何时悬停或按下按钮。

  ButtonStyle {
     background: Rectangle {
        width: control.width
        height: control.height
        color: control.pressed ? "gray" : "black"
     }
  }

答案 1 :(得分:1)

您可以查看名为 QtQuick Control Touch Gallery 的示例项目,或者您可以在此处查看在线版http://qt-project.org/doc/qt-5/qtquickcontrols-touch-content-buttonpage-qml.html