QML DropDown边界问题(Qt-5.3.2)

时间:2016-02-19 14:19:41

标签: qt combobox controls dropdown

我们正在使用Qt 5.3.2在IMX6上开发一个应用程序。 Qt库由Yocto提供。

我们的要求是使用特定的背景样式列出下拉菜单中的项目。为此,我们使用Qt Quick Controls和QtQuick.Controls.Styles提供的ComboBox来自定义下拉背景样式。我们使用MenuStyle组件来自定义下拉列表。

当我们应用样式时,我们发现下拉底部边框没有关闭。

请使用以下链接查看图片。

我们在桌面中没有遇到此问题。我们尝试在Ubuntu 12.04上运行相同的应用程序。

https://www.dropbox.com/s/33a57jaxs452c4r/IMX6.JPG?dl=0

https://www.dropbox.com/s/cmvvf3ytxg615q8/Ubuntu.JPG?dl=0

另外,下面我列出了我们用于自定义下拉列表的qml代码。

    ComboBox {                      
        id: comboFilterBy
        x: 10
        y: 130
        z:1
        width: 285
        height: 39
        model : eventFiltersList

        Rectangle {
            id: arrow
            anchors.right: parent.right
            width: 20; height: parent.height
            border.color: "black"
            border.width: 1
            Image {
                id: arrowIcon
                //            anchors.fill: parent
                width: 10
                height: arrow.height
                anchors.centerIn: parent
                clip: true
                smooth: true
                fillMode: Image.PreserveAspectFit
                source: "images/dropDownArrow.png"
            }
        }

        style: ComboBoxStyle {
            background:
                Rectangle {
                color: "#FFFFFF"
                border.width: 1
                border.color: "black"
                antialiasing: true
            }

            label: Text {
                verticalAlignment: Text.AlignVCenter
                horizontalAlignment: Text.left
                font.pointSize: 19
                font.family: "WenQuanYi Micro Hei Mono"
                color: "black"
                text: control.currentText
            }


            // drop-down customization here
            property Component __dropDownStyle: MenuStyle {
                __maxPopupHeight: 240
                __menuItemType: "comboboxitem"

            padding.bottom : getPaddingLength(1)

                frame: Rectangle {              // background
                    color: "#fff"
                    border.width: 1
                }

                itemDelegate.label:             // an item text
                    Text {
                    verticalAlignment: Text.AlignVCenter
                    horizontalAlignment: Text.AlignHCenter
                    font.pointSize: 19
                    font.family: "WenQuanYi Micro Hei Mono"
                    color: "black"
                    text: styleData.text
                }

                itemDelegate.background: Rectangle {  // selection of an item
                    color: styleData.selected ? "#5692c4" : "transparent"
                }

                __scrollerStyle: ScrollViewStyle { }
            }
        }

非常感谢任何帮助。

- Narayanan K

0 个答案:

没有答案