QLineEdit下利用QListWidget显示类似菜单功能
时间: 2023-05-16 10:06:28 浏览: 106
可以使用 QListWidget 的 addItem() 方法添加菜单项,然后在 QLineEdit 的 textChanged() 信号中根据用户输入的内容过滤出符合条件的菜单项并显示在 QListWidget 中。具体实现可以参考以下代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QListWidget, QVBoxLayout
class MenuWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.menu_items = ['apple', 'banana', 'cherry', 'durian', 'elderberry']
self.setup_ui()
def setup_ui(self):
self.line_edit = QLineEdit()
self.list_widget = QListWidget()
self.list_widget.addItems(self.menu_items)
layout = QVBoxLayout()
layout.addWidget(self.line_edit)
layout.addWidget(self.list_widget)
self.setLayout(layout)
self.line_edit.textChanged.connect(self.filter_menu_items)
def filter_menu_items(self, text):
self.list_widget.clear()
for item in self.menu_items:
if text.lower() in item.lower():
self.list_widget.addItem(item)
if __name__ == '__main__':
app = QApplication([])
widget = MenuWidget()
widget.show()
app.exec_()
```
这个程序会在窗口中显示一个 QLineEdit 和一个 QListWidget,当用户在 QLineEdit 中输入文字时,程序会根据输入的内容过滤出符合条件的菜单项并显示在 QListWidget 中。
阅读全文