我需要为我的spinbox
使用双QML view
,在这种情况下,我将spinbox
基于this example。
SpinBox {
id: spinbox
from: 0
value: 110
to: 100 * 100
stepSize: 100
anchors.centerIn: parent
property int decimals: 2
property real realValue: value / 100
validator: DoubleValidator {
bottom: Math.min(spinbox.from, spinbox.to)
top: Math.max(spinbox.from, spinbox.to)
}
textFromValue: function(value, locale) {
return Number(value / 100).toLocaleString(locale, 'f', spinbox.decimals)
}
valueFromText: function(text, locale) {
return Number.fromLocaleString(locale, text) * 100
}
}
当您使用自定义旋转框时,它似乎不会显示为" classic"纺纱器。它显示如下:
但是,按钮对我的界面来说太大了。我想知道是否有一种简单的方法来将旋转盒显示为经典"像这样的旋转框:
答案 0 :(得分:1)
如果您对在项目中使用旧的QtQuick.Controls 1.x
没有保留意见......
您可以使用前缀在同一文件中同时使用QtQuick.Controls 1.x
和QtQuick.Controls 2.0
。
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Controls 1.4 as OldCtrl
ApplicationWindow { // Unprefixed, therefor from the new QtQuick.Controls 2.0
id: root
visible: true
width: 400; height: 450
OldCtrl.SpinBox {
width: 100
value: 20
decimals: 2
}
}
以下是此SpinBox
如果您想使用QtQuick.Controls 2.x
,则可以为up.indicator
和down.indicator
SpinBox {
id: sb
value: 20
up.indicator: Rectangle {
height: parent.height / 2
anchors.right: parent.right
anchors.top: parent.top
implicitHeight: 40
implicitWidth: 40 // Adjust width here
color: sb.up.pressed ? "#e4e4e4" : "#f6f6f6"
border.color: enabled ? "#21be2b" : "#bdbebf"
Text {
text: '+'
anchors.centerIn: parent
}
}
down.indicator: Rectangle {
height: parent.height / 2
anchors.right: parent.right
anchors.bottom: parent.bottom
implicitHeight: 40
implicitWidth: 40 // Adjust width here
color: sb.down.pressed ? "#e4e4e4" : "#f6f6f6"
border.color: enabled ? "#21be2b" : "#bdbebf"
Text {
text: '-'
anchors.centerIn: parent
}
}
}