PyQt4可编辑组合框当前文本

时间:2015-09-02 18:35:01

标签: python combobox pyqt4 qcombobox

我正在使用可编辑的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会有更少的问题,但不幸的是,这不是一个选择。

1 个答案:

答案 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()