信号currentIndexChanged
的使用很明显,当选择了与组合框不同的项目时会触发它。但是我遇到了另一个信号的问题。当用户覆盖组合框的editTextChanged
手动更改时,会触发editText
,但是当选择了组合框中的其他项时,editTextChanged
和currentIndexChanged
都会被触发
我的问题是我需要知道我的插槽on_comboBox_editTextChanged()
中发生了这两种可能性中的哪一种,无论文本被覆盖还是选择了其他项目。从我看到的,插槽on_comboBox_editTextChanged()
被称为第一个,所以我不知道如何在插槽中实现这些信息。
我在QComboBox
课程中找不到可以解决它的任何内容。那么问题是如何区分是否由于索引被更改或用户覆盖了editText而触发了editTextChanged?
答案 0 :(得分:0)
可修改的QComboBox
将有一个 关联的 默认linedit
设置对象,它也可以直接与信号接口,例如:{{1 }},因此您可以选择使用textEdited
信号的替代方法,&QComboBox::editTextChanged
} textEdited
信号,例如:
linedit
因此,在这种情况下,当您在组合框中选择一个项目时,您将只获得QComboBox信号connect(ui->comboBox->lineEdit(), &QLineEdit::textEdited, this, &MainWindow::textEdited);
,而不是currentTextChanged
,这是区分您的情况。