我正在使用可编辑的QComboBox。我想要实现的是能够在字段中键入查询并在按Enter后运行该查询。但无论我如何尝试获取类型查询,组合框的值始终是列表中的第一项,而不是我刚输入的字符串。我尝试使用self.query_combo.lineEdit().text()
和self.query_combo.currentText()
来获取文字,但在任何情况下我都无法获得该字段中的实际当前文字值。
有谁知道为什么会这样,以及如何解决它?
self.query_combo = QComboBox(query_box)
self.query_combo.setEditable(True)
query_box.layout().addWidget(self.query_combo)
# combo box is filled with some example items
然后用户继续输入输入文本。键入时,"启动查询"按钮突出显示。因此,当用户按下回车键时(当插入符号仍在编辑字段中时),小部件将按下该按钮并开始查询。在查询方法中,代码如下:
def run_initial_query(self):
# Query keywords.
qkw = self.query_combo.currentText()
# or
qkw = self.query_combo.lineEdit().text()
但不会产生新输入的值。组合框始终选择列表中已有的第一个示例列表项。我觉得使用QLineEdit会有更少的问题,但不幸的是,这不是一个选择。
答案 0 :(得分:0)
我设法以这种方式做你想做的事
def __init__(self):
...
self.ui.comboBox.currentIndexChanged.connect(self.run_initial_query)
def run_initial_query(self):
#Do stuff
print self.ui.comboBox.currentText()