如何通过QT Designer 或者pyqt5 实现输入框输入关键词,下拉框显示模糊查询返回的结果, 实现最终的效果类似百度搜索模糊查询那种样式?
14条回答 默认 最新
关注
引自强大而免费的微信小程序:皆我百晓生。
要实现输入框输入关键词,下拉框显示模糊查询返回的结果,可以通过以下步骤来实现:
1. 创建主窗口
首先,我们需要创建一个主窗口来容纳输入框和下拉框。使用PyQt5提供的QWidget类创建一个新的窗口。import sys from PyQt5.QtWidgets import QApplication, QWidget # 创建一个新的应用程序实例 app = QApplication(sys.argv) # 创建一个QWidget类的实例作为主窗口 window = QWidget() # 设置窗口大小 window.setGeometry(100, 100, 300, 200) # 显示窗口 window.show() # 运行应用程序 sys.exit(app.exec_())
2. 添加输入框和下拉框
接下来,我们向主窗口中添加一个输入框和一个下拉框。import sys from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QComboBox, QVBoxLayout app = QApplication(sys.argv) window = QWidget() window.setGeometry(100, 100, 300, 200) # 创建一个QLineEdit类的实例作为输入框 input_box = QLineEdit() # 创建一个QComboBox类的实例作为下拉框 drop_down_box = QComboBox() # 创建一个垂直布局,并将输入框和下拉框添加到布局中 layout = QVBoxLayout() layout.addWidget(input_box) layout.addWidget(drop_down_box) # 将布局设置为主窗口的布局 window.setLayout(layout) window.show() sys.exit(app.exec_())
3. 实现模糊查询功能
现在我们需要实现模糊查询的功能。可以通过信号和槽机制来实现。具体步骤如下:- 使用QLineEdit的textChanged信号,当输入框的文本改变时触发。将这个信号连接到一个处理函数上。
- 在处理函数中,根据输入框的文本进行模糊查询,并将查询结果添加到下拉框中。
import sys from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QComboBox, QVBoxLayout app = QApplication(sys.argv) window = QWidget() window.setGeometry(100, 100, 300, 200) input_box = QLineEdit() drop_down_box = QComboBox() layout = QVBoxLayout() layout.addWidget(input_box) layout.addWidget(drop_down_box) window.setLayout(layout) # 创建处理函数来进行模糊查询 def handle_text_changed(text): # 清空下拉框的内容 drop_down_box.clear() # 模拟模糊查询的结果 results = ['abcc的四字词语', 'abab的四字词语', 'ab型血', 'abac的四字词语', 'ab型和o型生的孩子是什么血型', 'ab型血为什么叫贵族血', 'abob是什么药', 'abb的二字词语', 'abcdefg26个字母表', 'abbc式的词语'] # 根据输入框的文本进行模糊匹配 matched_results = [result for result in results if text in result] # 将匹配到的结果添加到下拉框中 drop_down_box.addItems(matched_results) # 将输入框的textChanged信号连接到处理函数上 input_box.textChanged.connect(handle_text_changed) window.show() sys.exit(app.exec_())
最后,运行代码,你就可以看到一个输入框和一个下拉框,当你在输入框中输入关键词时,下拉框会显示模糊查询的结果。
希望这些步骤对你有所帮助,如果有任何问题,请随时提问。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵