• 解决QML开发中ComboBox中一个已选择项没有清除的问题


    解决QML开发中ComboBox中一个已选择项没有清除的问题

             近期使用QML开发一个项目。须要使用ComboBox进行显示。当进行一个操作时,须要向ComboBox加入一个元素,当进行另外一个操作时。须要清除ComboBox里面的元素。

    可是在操作的过程中,出现了一个诡异的现象——ComboBox里面的已选择项并没有清除。

             以下是程序的截图,能够看到。ComboBox中已选择项并没有删除。可是ComboBox中的候选项已经删除了。


             我在QTCN上进行提问。后面再大家的努力下,最终把这个问题攻克了。

    原来还须要一个操作:testCombo.currentIndex = -1。以下是我改动后的代码,代码能够非常好地执行。

    import QtQuick 2.3
    import QtQuick.Controls 1.2
    
    ApplicationWindow
    {
        visible: true
         640
        height: 480
        title: qsTr( "Clear CheckBox" )
    
        menuBar: MenuBar
        {
            Menu
            {
                title: qsTr( "File")
                MenuItem
                {
                    text: qsTr( "Exit" )
                    onTriggered: Qt.quit( );
                }
            }
        }
    
        ListModel
        {
            id: testModel
        }
    
        ComboBox
        {
            id: testCombo
            anchors.centerIn: parent
            model: testModel
            textRole: "name"
        }
    
        property int margin: appendButton.height / 3
        Button
        {
            id: appendButton
            anchors.right: testCombo.left
            anchors.verticalCenter: testCombo.verticalCenter
            anchors.margins: margin
            text: qsTr( "Append to list" )
            onClicked:
            {
                testModel.append( { "name": "This is one" } );
                testModel.append( { "name": "This is two" } );
                testModel.append( { "name": "This is three" } );
                testModel.append( { "name": "This is four" } );
                testCombo.currentIndex = 0;// 修正Bug加入的
            }
        }
    
        Button
        {
            anchors.left: testCombo.right
            anchors.verticalCenter: testCombo.verticalCenter
            anchors.margins: margin
            text: qsTr( "clear list" )
            onClicked:
            {
                testCombo.currentIndex = -1;// 修正Bug加入的
                testModel.clear( );
            }
        }
    }

  • 相关阅读:
    第5章 语句(1)
    第6章 6.2 创建对象
    js考试题目相关
    第6章 6.3 继承
    第6章 面向对象 导论
    第6章 6.1 理解对象
    第5章 语句(2)
    第6章 面向对象 导论(javascript的面向对象)
    第6章 面向对象深入理解
    第3章 补充(图解JavaScript执行环境、作用域、闭包)
  • 原文地址:https://www.cnblogs.com/llguanli/p/7076118.html
Copyright © 2020-2023  润新知