【问题标题】:Selection highlight in accordance to text input根据文本输入选择突出显示
【发布时间】:2014-01-29 14:30:50
【问题描述】:

我试图在 LineEdit 中输入文本时突出显示列表中的项目,但是,我不仅无法使其正常工作,而且也没有突出显示列表中的项目。我在某处写错了吗?有什么建议吗?

fruitsList = QListWidget()
list01 = ['Apple','Pear','Orange','Grape','Lychee']
self.fruitsList.addItems(list01)

textInput = QLineEdit()
fruitTxt = str(textInput)

self.connect(self.textInput,('returnPressed()'), self.updateSelect)

def updateSelect(self):
    self.fruitsList.findItems(str(fruitTxt), flags = Qt.MatchExactly)
    self.fruitsList.setCurrentIndex(0)

【问题讨论】:

    标签: pyqt4 highlight qlistwidget qlineedit


    【解决方案1】:

    您发布的代码有一些问题。

    信号连接应使用QtCore.SIGNAL('returnPressed()')。但是使用new-style syntax 会更好,更不容易出错。

    您的信号处理程序也有几个问题。需要使用line-edit的text()方法获取当前文本,并使用findItems()的返回值选择列表中的项目。

    这里有一个小演示,展示了它是如何完成的:

    from PyQt4 import QtCore, QtGui
    
    class Window(QtGui.QWidget):
        def __init__(self):
            QtGui.QWidget.__init__(self)
            self.fruitsList = QtGui.QListWidget(self)
            items = 'Apple Pear Orange Grape Lychee'.split()
            self.fruitsList.addItems(items)
            self.textInput = QtGui.QLineEdit(self)
            self.textInput.returnPressed.connect(self.updateSelect)
            self.textInput.setFocus()
            layout = QtGui.QVBoxLayout(self)
            layout.addWidget(self.fruitsList)
            layout.addWidget(self.textInput)
    
        def updateSelect(self):
            self.fruitsList.clearSelection()
            for item in self.fruitsList.findItems(
                self.textInput.text(), QtCore.Qt.MatchFixedString):
                item.setSelected(True)
    
    if __name__ == '__main__':
    
        import sys
        app = QtGui.QApplication(sys.argv)
        window = Window()
        window.setGeometry(500, 300, 300, 200)
        window.show()
        sys.exit(app.exec_())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-27
      相关资源
      最近更新 更多