QLineEdit下利用QListWidget显示类似菜单功能
时间: 2023-05-15 07:06:42 浏览: 149
可以使用QListWidget的addItem()方法添加菜单项,然后使用QLineEdit的textChanged()信号和QListWidget的itemClicked()信号来实现菜单的显示和选择。具体实现可以参考以下代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QListWidget, QVBoxLayout
class MenuWidget(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.menu = QListWidget()
self.menu.addItem('菜单项1')
self.menu.addItem('菜单项2')
self.menu.addItem('菜单项3')
self.menu.itemClicked.connect(self.on_item_clicked)
layout = QVBoxLayout()
layout.addWidget(self.menu)
self.setLayout(layout)
def on_item_clicked(self, item):
text = item.text()
self.parent().setText(text)
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.edit = QLineEdit()
self.menu = MenuWidget(self)
self.edit.textChanged.connect(self.show_menu)
layout = QVBoxLayout()
layout.addWidget(self.edit)
self.setLayout(layout)
def show_menu(self, text):
if text:
self.menu.show()
else:
self.menu.hide()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这个例子中,我们创建了一个MenuWidget类来显示菜单项,然后在MainWindow中使用QLineEdit和MenuWidget来实现菜单的显示和选择。当用户在QLineEdit中输入文本时,如果文本不为空,就显示菜单,否则隐藏菜单。当用户选择菜单项时,将菜单项的文本设置为QLineEdit的文本。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)