completer.setFilterMode(QCompleter.FilterMode.Contains)
时间: 2023-12-21 09:06:15 浏览: 34
这行代码的作用是设置QCompleter的过滤模式为包含模式。当用户在QCompleter所关联的文本框中输入文字时,QCompleter会根据已经设置好的过滤模式来过滤下拉列表中的选项,只显示包含用户输入文字的选项。在这个例子中,过滤模式是包含模式,所以只要下拉列表中的选项包含用户输入的文字,就会显示出来。
相关问题
pyqt6中completer.setFilterMode怎么用
在PyQt6中,您可以使用`setFilterMode`方法来设置QCompleter的过滤模式。该方法接受一个`Qt.MatchFlag`枚举值作为参数,用于指定过滤模式。常见的过滤模式包括:
- `Qt.MatchStartsWith`:以用户输入的文字开头的选项将会被显示在下拉列表中。
- `Qt.MatchContains`:包含用户输入的文字的选项将会被显示在下拉列表中。
- `Qt.MatchEndsWith`:以用户输入的文字结尾的选项将会被显示在下拉列表中。
以下是一个示例:
```python
from PyQt6.QtWidgets import QApplication, QLineEdit, QCompleter
from PyQt6.QtCore import Qt
app = QApplication([])
line_edit = QLineEdit()
completer = QCompleter(['apple', 'banana', 'cherry'])
completer.setFilterMode(Qt.MatchContains)
line_edit.setCompleter(completer)
line_edit.show()
app.exec()
```
在这个示例中,我们首先创建了一个QLineEdit对象和一个QCompleter对象,并将QCompleter的过滤模式设置为包含模式。然后,我们将QCompleter对象与QLineEdit对象关联,以便在用户输入时显示下拉列表。最后,我们启动了应用程序并显示QLineEdit对象。
希望这个示例能够帮助您理解如何在PyQt6中使用`setFilterMode`方法。
pyqt6 completer.setCaseSensitivity设置大小写不敏感
在PyQt6中,`completer.setCaseSensitivity()`方法的使用与PyQt5略有不同。下面是一个示例代码,展示了如何在PyQt6中设置QCompleter的大小写敏感性:
```python
import tushare as ts
from PyQt6.QtWidgets import QLineEdit, QCompleter, QApplication
from PyQt6.QtCore import Qt
# 获取股票列表
pro = ts.pro_api()
df = pro.stock_basic()
stock_list = df['ts_code'].tolist() + df['name'].tolist()
# 创建QLineEdit对象
line_edit = QLineEdit()
# 创建QCompleter对象
completer = QCompleter(stock_list)
completer.setFilterMode(Qt.MatchContains) # 设置过滤模式
completer.setCaseSensitivity(Qt.CaseInsensitive) # 设置大小写不敏感
# 设置自动补全功能
line_edit.setCompleter(completer)
# 显示QLineEdit对象
app = QApplication([])
line_edit.show()
app.exec()
```
在PyQt6中,`completer.setCaseSensitivity()`方法接受一个枚举类型的参数,用于设置大小写敏感性。在上面的示例中,我们将其设置为`Qt.CaseInsensitive`,表示大小写不敏感。
此外,我们还设置了`completer.setFilterMode(Qt.MatchContains)`以指定过滤模式。它确定控件的文本与已添加的项的匹配方式。在此示例中,我们将其设置为`Qt.MatchContains`,表示只要文本中包含项的任何部分,就可以进行匹配。
最后,我们创建了一个QApplication对象并使用`app.exec()`运行应用程序。