如何通过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 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
- ¥15 MATLAB中streamslice问题
- ¥15 如何在炒股软件中,爬到我想看的日k线
- ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
- ¥15 seatunnel 怎么配置Elasticsearch
- ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
- ¥15 (标签-MATLAB|关键词-多址)
- ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
- ¥500 52810做蓝牙接受端
- ¥15 基于PLC的三轴机械手程序