Ubuntu 18.04上的QT 5.6.2
我有一个非常简单的ComboBox
import QtQuick.Controls 1.4
Row{//box
Item{width: 0.02 * root.width; height: 1}//space
spacing: 0.02 * root.width
ComboBox{//Recording type
id: typeCombo
anchors.bottom: parent
currentIndex: 2
model: ["TOWING", "PRE_FLIGHT_CHECKS", "FLIGHT"]
width: 0.4 * root.width; height: 0.15 * root.height
}
Rectangle{
id: rectangle
width: 0.5 * root.width; height: 0.15 * root.height
border{color: 'gray'; width: 0.1 * rectangle.height}
radius: 0.18 * rectangle.height
clip: true
onEnabledChanged: if(!enabled) textInput.text = ''
opacity: enabled? 1: 0.3
visible: ddsObject.isRecorderStation
TextInput{
id: textInput
anchors.centerIn: parent
font.pixelSize: 0.6 * rectangle.height
maximumLength: 100
}
MouseArea{
anchors.fill: parent
onPressed: parent.border.color = 'magenta'
onReleased: parent.border.color = 'gray'
onCanceled:{parent.border.color = 'gray'; execute()}
onClicked: execute()
function execute(){textInput.forceActiveFocus(Qt.OtherFocusReason)}
}
}
}
但是,单击时它会绘制在应用程序窗口的右下角。框架中也有此消息:
QmlViewGadgetWidget(0x563561aa31e0) must be a top level window
任何想法如何解决?我希望下拉菜单会显示在ComboBox
元素的正下方。
可能与this question相关。但是,答案说这个问题早已解决。
答案 0 :(得分:0)
您需要将ComboBox锚定到您的根组件。您可以通过设置属性anchors.centerIn: root