Центрируйте метку в элементе ComboBox с пользовательским ComboBoxStyle

Я использую QtQuick.Controls 1.0 и QtQuick.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 на control или background безрезультатно.


person koopajah    schedule 07.10.2013    source источник


Ответы (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
      }
  }
}
person koopajah    schedule 08.10.2013