QT ComboBox рисуется не в том месте

QT 5.6.2 на Ubuntu 18.04 У меня очень простой 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.


Может быть связано с этим вопросом. Однако в ответе говорилось, что проблема давно решена.


person ilya1725    schedule 27.11.2018    source источник
comment
предоставьте минимальный воспроизводимый пример   -  person eyllanesc    schedule 27.11.2018
comment
Зачем использовать неподдерживаемую версию Qt?   -  person sk2212    schedule 28.11.2018
comment
Какая версия поддерживается? В первую очередь потому, что я унаследовал этот код, а не создал его изначально.   -  person ilya1725    schedule 28.11.2018
comment
Qt 5.6 и import QtQuick.Controls 1.4 Я бы не сказал, что они полностью не поддерживаются. Но теперь есть Qt 5.11 и QtQuick Controls 2.x. Даже если код изначально не ваш, может быть, подумать о том, чтобы увеличить его до этого?   -  person TrebledJ    schedule 29.11.2018


Ответы (1)


Вам нужно привязать ComboBox к корневому компоненту. Вы можете добиться этого, установив свойство anchors.centerIn: root

person xeco    schedule 27.11.2018
comment
Спасибо за предложение. Мой ComboBox находится внутри строки вместе с полем редактирования Rectangle. В результате вернулось это сообщение: Строка QML: невозможно указать привязки left, right, horizontalCenter, fill или centerIn для элементов внутри строки. Ряд не будет работать. - person ilya1725; 28.11.2018
comment
Затем вы можете установить свойство anchors.verticalCenter: parent.verticalCenter - person xeco; 28.11.2018