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

llguanli llguanli     2022-09-05     657

关键词:

解决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
    width: 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( );
        }
    }
}



选择后 ComboBox QML 不显示项目文本

】选择后ComboBoxQML不显示项目文本【英文标题】:ComboBoxQMLdoesnotshowitemtextafterselection【发布时间】:2017-09-1017:22:59【问题描述】:我有一个QMLComboBox,其模型定义为C++QList。当我打开下拉列表时,我可以看到C++模型中定义的所有项... 查看详情

更改 ComboBox 文本但未选择项

】更改ComboBox文本但未选择项【英文标题】:ChangeComboBoxtextbutnotselecteditem【发布时间】:2014-03-0322:58:40【问题描述】:我有一个ComboBox,其中包含我的应用程序中定义的每个FilterViewModel的项目。每个FilterViewModel都有一个DisplayName属... 查看详情

如何从选定的 WPF ComboBox 项 C# 中显示内容

】如何从选定的WPFComboBox项C#中显示内容【英文标题】:HowtodisplaycontentfromselectedWPFComboBoxitemC#【发布时间】:2021-03-1108:10:02【问题描述】:我希望每个人都很好我正在用C#和WPF构建一个小应用程序,我正在尝试添加一个功能,当单... 查看详情

c#中combox控件已绑定数据,如何根据一个string类型字段设置combox的选择项

参考技术AcomboBox1.DisplayMember="显示的字段";comboBox1.ValueMember="值的字段";设置选择项直接:comboBox1.SelectedItem="字符串";就可以也可以用FindString来查找对应字符串的项,也可以用SelectValue来设置对应项,都是一... 查看详情

在 QML 中填充 Combobox 模型时如何使用 csv 列表?

】在QML中填充Combobox模型时如何使用csv列表?【英文标题】:InQMLwhenpopulatingaComboboxmodelhowcanIuseacsvlist?【发布时间】:2019-08-0312:29:20【问题描述】:我正在尝试使用csv列表在QML中构建动态组合框。我正在将列表转换为数组,它看起... 查看详情

QML 动态组合框条目

】QML动态组合框条目【英文标题】:QMLdynamicComboBoxEntrys【发布时间】:2014-11-1212:46:19【问题描述】:我正在尝试在QML和C++中实现一个ComboBox,我可以在其中动态更改我的ComboBox的内容。我提供一个QStringList作为ComboBox-Model并希望使... 查看详情

如何以编程方式从viewmodel中选择listview项?(代码片段)

...MainWindowview。在MainWindow视图中,我有一个包含股票代码的ComboBox。我有另一个视图模型和名为AllStockQuoteViewModel的视图连接到AllStockQuoteView,其中包含一系列股票及其价格。我希望能够从ComboBox中选择一个项目,并选择并突出显示Al... 查看详情

解决vs2015中没有报表项(reportviewer)的方法

...项(ReportViewer),怎么办?这篇文章主要为大家详细介绍了解决VS2015中没有报表项(ReportViewer)的方法,感兴趣的小伙伴们可以参考一下 没有报表,一般默认安装之后会出现这种情况,在安装的时候选择自定义安装,把MicrosoftOffic... 查看详情

qml-开发中遇到的错误收集

...写cpp又只能大概看懂意思,遇到的很多问题都不知道怎么解决而急得拔头发。遇到的问题都是我这种菜鸟渣渣才会导致的问题,写下解决过程方便以后查看。1.因为删除项目中的文件而导致的无法运行第一次删除项目中一个qml文... 查看详情

用于combobox项目选择的事件处理程序(选定项目未必更改)(代码片段)

...像这样处理SelectionChanged事件和DropDownClosed:在XAML中:<ComboBoxName="cmbSelect"SelectionChanged="ComboBox_SelectionChanged"DropDownClosed="ComboBox_DropDownClosed"><ComboBoxItem>1</ComboBoxItem><ComboBoxItem>2</ComboBoxItem><ComboBoxItem>3</Comb... 查看详情

如何通过 Javascript 访问 QML ComboBox 中使用的 QAbstractListModel 的角色

】如何通过Javascript访问QMLComboBox中使用的QAbstractListModel的角色【英文标题】:HowtoaccessRolesofaQAbstractListModelusedinaQMLComboBoxviaJavascript【发布时间】:2015-06-2310:29:59【问题描述】:我有一个基于QAbstractListModel的模型。它实现了几个不... 查看详情

求教,如何获得combobox中当前选择的值

1.编程方式向comboBox添加comboBox1.Items.Add("第一项");comboBox1.Items.Add("第二项");comboBox1.Items.Add("第三项");comboBox1.Items.Add("第四项");2.设置默认被选中的项comboBox1.SelectedIndex=0;//选中"第一项"3.获取当... 查看详情

C++ 和 QML 中的 QT QML 项

...2016-07-1307:24:21【问题描述】:我的目标是在qml文件中描述一个qml项目,然后使用相应的C++类添加到该项目的可视化表示中。我知道可以描述一个qml项目并在qml文件中使用它,并通过信号/插槽从c++与它通信。我也知道可以使用QQuic... 查看详情

如何在 qml 的 3d 彩色立方体中选择颜色?

...发布时间】:2021-08-1609:58:31【问题描述】:我正在使用QML开发一个3D颜色选择器立方体,我已经开发了立方体纹理,但我不知道如何编码颜色选择。我希望当我单击立方体面时具有我单击的颜色,是否可以在qml中做到这一点?这... 查看详情

mfc中,怎么获取combobox的选中项

...&no);m_BaudRate.SetCurSel(0);用intbaud=m_BaudRate.GetCurSel();获取的是ComboBox选中项的下标,即0或1,我想获取到我定义的B9600或B19200,要怎么获取啊?还请高手指点一二~也就是说这个9600是一个中间值,你选择的是第0项,而显示的是9600,而... 查看详情

vb.net中怎样在代码中向combobox赋值,

要求是,combobox1中选择一个值,另一个bombobox2中的值就会跟着改变,添加项:ComboBox1.Items.Add("123")直接赋值:ComboBox1.Text="123"======================PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.LoadFori=1To... 查看详情

如何知道在multiselect组合框中选择了多少项(代码片段)

...的组合框,我想知道如何知道选择了多少项。我尝试过:combobox.store.getCount();但它告诉我组合框中的项目总数而不是用户选择的项目总数。基本上我想创建一个条件,当用户在组合框中选择多个选项时将触发该条件答案你可以使... 查看详情

c#,combobox,怎么使某一项不能被选中

...通过编程的方法也是可以出发这个事件的。追问privatevoidcomboBox1_DropDownClosed(objectsender,EventArgse)this.comboBox1.Text=this.comboBox1.Text.Trim();if(comboBox1.SelectedIndex==3)this.comboBox1.Text="";这样不行哦本回答被提问者采纳 查看详情