簡體   English   中英

PyQt4可編輯組合框當前文本

[英]PyQt4 editable combobox current text

我正在使用可編輯的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

然后,用戶繼續輸入輸入文本。 鍵入時,“開始查詢”按鈕將突出顯示。 因此,當用戶按下Enter鍵(尖號仍在編輯字段中)時,小部件將按下該按鈕並開始查詢。 在查詢方法中,代碼如下:

def run_initial_query(self):
    # Query keywords.
    qkw = self.query_combo.currentText()
    # or
    qkw = self.query_combo.lineEdit().text()

但都不會產生新輸入的值。 組合框始終選擇列表中的第一個示例列表項。 我感覺使用QLineEdit會遇到較少的問題,但是不幸的是這不是一個選擇。

我設法以這種方式做你想要的

def __init__(self):
    ...
    self.ui.comboBox.currentIndexChanged.connect(self.run_initial_query) 

def run_initial_query(self):
    #Do stuff
    print self.ui.comboBox.currentText()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM