使用自定义ComboBoxStyle将标签置于ComboBox元素中

时间:2013-10-07 16:26:16

标签: qml qt5 qtquick2

我正在使用QtQuick.Controls 1.0QtQuick.Controls.Styles 1.0,而我无法找到一种方法来正确对齐ComboBox的标签,而是垂直对齐。

这是我目前的代码

import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0


ComboBox {
  id: comboCategories
  width: 230
  height: 30

  style: ComboBoxStyle {
    background: Rectangle {
      id: rectCategory
      width: comboCategories.width
      height: comboCategories.height
      color: "white"
    }

    label: Text {
      anchors.verticalCenter: parent.verticalCenter
      anchors.right: background.right
      font.pointSize: 12
      color: "#808080"
      text: control.currentText
    }
  }
}

但是标签停留在我的元素的左上角,并且似乎不受锚点的影响。我还尝试将parent替换为controlbackground,但无效

1 个答案:

答案 0 :(得分:1)

我并不确切知道这背后的原因,但如果我将Text元素包裹在Item中,那么我可以正确地

import QtQuick 2.0
import QtQuick.Controls 1.0
import QtQuick.Controls.Styles 1.0

ComboBox {
  id: comboCategories
  width: 230
  height: 30

  style: ComboBoxStyle {
    background: Rectangle {
      id: rectCategory
      width: comboCategories.width
      height: comboCategories.height
      color: "white"
    }

    label: Item {
      anchors.fill: parent
      Text {
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
        anchors.rightMargin: 5
        font.pointSize: 12
        color: "#808080"
        text: control.currentText
      }
  }
}