如何通过QT Designer 或者pyqt5 实现输入框输入关键词,下拉框显示模糊查询返回的结果, 实现最终的效果类似百度搜索模糊查询那种样式?

如何通过QT Designer 或者pyqt5 实现输入框输入关键词,下拉框显示模糊查询返回的结果, 实现最终的效果类似百度搜索模糊查询那种样式?

关注引自强大而免费的微信小程序:皆我百晓生。
要实现输入框输入关键词,下拉框显示模糊查询返回的结果,可以通过以下步骤来实现:
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. 实现模糊查询功能
现在我们需要实现模糊查询的功能。可以通过信号和槽机制来实现。具体步骤如下:
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_())
最后,运行代码,你就可以看到一个输入框和一个下拉框,当你在输入框中输入关键词时,下拉框会显示模糊查询的结果。
希望这些步骤对你有所帮助,如果有任何问题,请随时提问。