QLineEdit文本改变的时候出现QListWidget,在鼠标焦点不在QLineEdit时,隐藏QListWidget
时间: 2023-05-15 17:06:39 浏览: 117
QListView和QListWidget
3星 · 编辑精心推荐
可以使用QLineEdit的textChanged信号来监听文本改变事件,当文本改变时,显示QListWidget,当鼠标焦点不在QLineEdit时,隐藏QListWidget。具体实现可以参考以下代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QListWidget, QVBoxLayout
from PyQt5.QtCore import Qt
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.line_edit = QLineEdit()
self.list_widget = QListWidget()
self.list_widget.hide()
vbox = QVBoxLayout()
vbox.addWidget(self.line_edit)
vbox.addWidget(self.list_widget)
self.setLayout(vbox)
self.line_edit.textChanged.connect(self.show_list_widget)
self.line_edit.editingFinished.connect(self.hide_list_widget)
def show_list_widget(self, text):
if text:
self.list_widget.show()
def hide_list_widget(self):
self.list_widget.hide()
if __name__ == '__main__':
app = QApplication([])
w = MyWidget()
w.show()
app.exec_()
```
这段代码实现了一个带有QLineEdit和QListWidget的窗口,当QLineEdit的文本改变时,QListWidget会显示出来,当鼠标焦点不在QLineEdit时,QListWidget会隐藏。
阅读全文