QCompleter Class Reference

[QtGui module]

该QCompleter类提供了基于项目模型落成。More…

继承QObject

Types

  • enum CompletionMode { PopupCompletion, UnfilteredPopupCompletion, InlineCompletion }
  • enum ModelSorting { UnsortedModel, CaseSensitivelySortedModel, CaseInsensitivelySortedModel }

Methods

  • __init__ (self, QObject parent = None)
  • __init__ (self, QAbstractItemModel model, QObject parent = None)
  • __init__ (self, QStringList list, QObject parent = None)
  • Qt.CaseSensitivity caseSensitivity (self)
  • complete (self, QRect rect = QRect())
  • int completionColumn (self)
  • int completionCount (self)
  • CompletionMode completionMode (self)
  • QAbstractItemModel completionModel (self)
  • QString completionPrefix (self)
  • int completionRole (self)
  • QString currentCompletion (self)
  • QModelIndex currentIndex (self)
  • int currentRow (self)
  • bool event (self, QEvent)
  • bool eventFilter (self, QObject o, QEvent e)
  • int maxVisibleItems (self)
  • QAbstractItemModel model (self)
  • ModelSorting modelSorting (self)
  • QString pathFromIndex (self, QModelIndex index)
  • QAbstractItemView popup (self)
  • setCaseSensitivity (self, Qt.CaseSensitivity caseSensitivity)
  • setCompletionColumn (self, int column)
  • setCompletionMode (self, CompletionMode mode)
  • setCompletionPrefix (self, QString prefix)
  • setCompletionRole (self, int role)
  • bool setCurrentRow (self, int row)
  • setMaxVisibleItems (self, int maxItems)
  • setModel (self, QAbstractItemModel c)
  • setModelSorting (self, ModelSorting sorting)
  • setPopup (self, QAbstractItemView popup)
  • setWidget (self, QWidget widget)
  • setWrapAround (self, bool wrap)
  • QStringList splitPath (self, QString path)
  • QWidget widget (self)
  • bool wrapAround (self)

Qt Signals

  • void activated (const QString&)
  • void activated (const QModelIndex&)
  • void highlighted (const QString&)
  • void highlighted (const QModelIndex&)

Detailed Description

该QCompleter类提供了基于项目模型落成。

您可以使用QCompleter提供自动完成功能在任何Qt的窗口小部件,如QLineEditQComboBox。当用户开始输入一个字, QCompleter提示完成单词根据单词列表的可能途径。单词列表是作为一个QAbstractItemModel。 (对于简单的应用,这里所说的列表是静态的,你可以通过一个QStringList到QCompleter的构造函数。 )

Basic Usage

一个QCompleter通常用于与QLineEdit or QComboBox。例如,这里是如何从一个简单的单词列表提供自动补全QLineEdit

  1. [QStringList]($docs-qstringlist.html) wordList;
  2. wordList << "alpha" << "omega" << "omicron" << "zeta";
  3. [QLineEdit]($docs-qlineedit.html) *lineEdit = new [QLineEdit]($docs-qlineedit.html)(this);
  4. QCompleter *completer = new QCompleter(wordList, this);
  5. completer->setCaseSensitivity([Qt](qt.html).CaseInsensitive);
  6. lineEdit->setCompleter(completer);

A QFileSystemModel可用于提供文件名的自动完成。例如:

  1. QCompleter *completer = new QCompleter(this);
  2. completer->setModel(new [QDirModel](qdirmodel.html)(completer));
  3. lineEdit->setCompleter(completer);

要设置哪些QCompleter应操作模式,通话时间setModel( ) 。默认情况下, QCompleter将尝试匹配completion prefix(也就是说,用户已经开始键入单词)对Qt.EditRole存储在模型的情况下0列数据敏感。这可以使用被改变setCompletionRole( )setCompletionColumn()和setCaseSensitivity( ) 。

如果模型进行排序了用于完成列和作用,可以调用setModelSorting( )与任何QCompleter.CaseSensitivelySortedModel or QCompleter.CaseInsensitivelySortedModel作为参数。在大型模型,这可能会导致显着的性能提升,因为QCompleter就可以使用二进制搜索,而不是线性搜索。

该模型可以是一list model,一table modeltree model。完成对树模型是稍微更复杂,并复盖在Handling Tree Models下面一节。

completionMode()确定用于提供完井给用户的方式。

Iterating Through Completions

检索单个候选字符串,调用setCompletionPrefix()与需要完成的文本和通话currentCompletion( ) 。您可以通过补全列表迭代如下:

  1. for (int i = 0; completer->setCurrentRow(i); i++)
  2. qDebug() << completer->currentCompletion() << " is match number " << i;

completionCount()返回完井的总数为当前前缀。completionCount()时,应避免可能的,因为它要求在整个模型的扫描。

The Completion Model

completionModel( )返回一个包含所有可能的补全当前完成前缀列表模式,在它们出现在模型中的顺序。该模型可用于显示当前的落成在自定义视图。调用setCompletionPrefix( )自动刷新完成模型。

Handling Tree Models

QCompleter可以寻找在树模型的完成,假设任何项目(或子项或子分项)可以明确指定该项目的路径表示为一个字符串。完成,然后进行一个级别的时间。

让我们在一个文件系统中的路径的用户输入的示例。该模型是一个(分层)QFileSystemModel。完成出现在路径中的每个元素。例如,如果当前的文本是C:\Wind, QCompleter可能会建议Windows完成当前路径元素。同样,如果当前的文本是C:\Windows\Sy, QCompleter可能会建议System

对于这种完成工作的, QCompleter需要能够将路径分割成匹配在每个级别的字符串列表。为C:\Windows\Sy,它需要被分割为“C :”,“窗口”和“施” 。的默认实现splitPath( ) ,分裂completionPrefix using QDir.separator( )如果模型是一个QFileSystemModel

提供完井, QCompleter需要从索引知道路径。这是通过提供pathFromIndex( ) 。的默认实现pathFromIndex( ) ,返回的数据edit role为列表模式和绝对文件路径,如果模式是QFileSystemModel


Type Documentation

  1. QCompleter.CompletionMode

该枚举指定如何完井提供给用户。

Constant Value Description
QCompleter.PopupCompletion 0 目前完井显示在一个弹出窗口。
QCompleter.InlineCompletion 2 完井行内显示(选定文本)。
QCompleter.UnfilteredPopupCompletion 1 所有可能的完成与指示为当前最有可能的建议,显示在一个弹出窗口中。

See also setCompletionMode( ) 。

  1. QCompleter.ModelSorting

此枚举指定如何在模型中的项目进行排序。

Constant Value Description
QCompleter.UnsortedModel 0 该模型是未排序。
QCompleter.CaseSensitivelySortedModel 1 该模型是敏感排序的情况。
QCompleter.CaseInsensitivelySortedModel 2 该模型是不区分大小写排序的情况。

See also setModelSorting( ) 。


Method Documentation

  1. QCompleter.__init__ (self, QObject parent = None)

parent争论

构造一个完成者对象与给定parent

  1. QCompleter.__init__ (self, QAbstractItemModel model, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个完成者对象与给定parent提供完井从指定的model

  1. QCompleter.__init__ (self, QStringList list, QObject parent = None)

parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。

构造一个QCompleter与给定对象parent使用指定的list作为尽可能完整的源代码。

  1. Qt.CaseSensitivity QCompleter.caseSensitivity (self)

[

  1. QCompleter.complete (self, QRect rect = QRect())

这种方法也是一个Qt槽与C + +的签名void complete(const QRect& = QRect())

]($docs-qt.html#CaseSensitivity-enum)

QCompleter.PopupCompletion和QCompletion.UnfilteredPopupCompletion模式,调用这个函数显示显示当前落成弹出。默认情况下,如果rect没有指定,则弹出窗口显示的底部widget( ) 。如果rect指定了弹出窗口被显示在矩形的左边缘。

QCompleter.InlineCompletion模式下,highlighted( )信号被发射了与当前的完成。

  1. int QCompleter.completionColumn (self)
  1. int QCompleter.completionCount (self)

返回完井的数量为当前前缀。对于有大量项目的未排序的模型可以是昂贵的。使用setCurrentRow()和currentCompletion( )遍历所有的补全。

  1. CompletionMode QCompleter.completionMode (self)

  1. QAbstractItemModel QCompleter.completionModel (self)

[

返回完成模型。在完成模型是包含所有当前完成前缀可能的匹配一个只读列表模式。完成模型自动更新,以反映当前的落成。

]($docs-qabstractitemmodel.html)

Note:这个函数的返回值被定义为一个QAbstractItemModel纯粹是为了通用性。这实际返回的一种模型是一个实例QAbstractProxyModel子类。

See also completionPrefixmodel( ) 。

  1. QString QCompleter.completionPrefix (self)
  1. int QCompleter.completionRole (self)
  1. QString QCompleter.currentCompletion (self)

返回当前完井管柱。这包括completionPrefix。当一起使用setCurrentRow( ) ,它可以用来遍历所有的比赛。

See also setCurrentRow()和currentIndex( ) 。

  1. QModelIndex QCompleter.currentIndex (self)

返回在当前完成的模型索引completionModel( ) 。

See also setCurrentRow( )currentCompletion()和model( ) 。

  1. int QCompleter.currentRow (self)

返回当前行。

See also setCurrentRow( ) 。

  1. bool QCompleter.event (self, QEvent)

从重新实现QObject.event( ) 。

  1. bool QCompleter.eventFilter (self, QObject o, QEvent e)

从重新实现QObject.eventFilter( ) 。

  1. int QCompleter.maxVisibleItems (self)
  1. QAbstractItemModel QCompleter.model (self)

[

返回提供完井管柱模型。

]($docs-qabstractitemmodel.html)

See also setModel()和completionModel( ) 。

  1. ModelSorting QCompleter.modelSorting (self)

[

  1. QString QCompleter.pathFromIndex (self, QModelIndex index)

返回路径为给定的index。完成者对象使用这个从底层模型得到完成文本。

]($docs-qcompleter.html#ModelSorting-enum)

默认实现返回edit role为列表模式的项目。它返回文件的绝对路径,如果这个模型是一个QFileSystemModel

See also splitPath( ) 。

  1. QAbstractItemView QCompleter.popup (self)

[

返回用于显示落成弹出。

]($docs-qabstractitemview.html)

See also setPopup( ) 。

  1. QCompleter.setCaseSensitivity (self, Qt.CaseSensitivity caseSensitivity)
  1. QCompleter.setCompletionColumn (self, int column)
  1. QCompleter.setCompletionMode (self, CompletionMode mode)
  1. QCompleter.setCompletionPrefix (self, QString prefix)

这种方法也是一个Qt槽与C + +的签名void setCompletionPrefix(const QString&)

  1. QCompleter.setCompletionRole (self, int role)
  1. bool QCompleter.setCurrentRow (self, int row)

当前行设置为row规定。成功返回True ,否则返回False 。

这个功能可以随着所用currentCompletion( )遍历所有可能的补全。

See also currentRow( )currentCompletion()和completionCount( ) 。

  1. QCompleter.setMaxVisibleItems (self, int maxItems)
  1. QCompleter.setModel (self, QAbstractItemModel c)

设置提供完井模型model。该model可以列表模式或树模型。如果模型已经被预先设置,并具有QCompleter作为其母公司,将被删除。

为方便起见,如果modelQFileSystemModelQCompleter其切换caseSensitivityQt.CaseInsensitive在Windows和Qt.CaseSensitive在其他平台上。

See also completionModel( )modelSortingHandling Tree Models

  1. QCompleter.setModelSorting (self, ModelSorting sorting)
  1. QCompleter.setPopup (self, QAbstractItemView popup)

popup说法有它的所有权转移给Qt的。

设置用于显示完井弹出popupQCompleter采用该视图的所有权。

A QListView时自动创建的completionMode( )被设置为QCompleter.PopupCompletion or QCompleter.UnfilteredPopupCompletion。默认的弹出窗口显示completionColumn( ) 。

确保这个函数被调用视图设置被修改之前。这是必需的,因为视图的属性可能需要一个模型已经被设置的视图(例如,隐藏在视图中的列需要一个模型要在视图中设置) 。

See also popup( ) 。

  1. QCompleter.setWidget (self, QWidget widget)

widget说法有它的所有权转移给Qt的。

设置用来完成所规定的小部件widget。这个函数被自动调用,当QCompleter设置在QLineEdit using QLineEdit.setCompleter()或上一个QComboBox using QComboBox.setCompleter( ) 。该部件需要明确规定完成为自定义控件时进行设置。

See also widget( )setModel()和setPopup( ) 。

  1. QCompleter.setWrapAround (self, bool wrap)

这种方法也是一个Qt槽与C + +的签名void setWrapAround(bool)

  1. QStringList QCompleter.splitPath (self, QString path)

拆分给定的path成用于匹配在每个级别的字符串model( ) 。

splitPath的默认实现( )分割基于文件系统路径QDir.separator()当sourceModel ()是一个QFileSystemModel

当与表模型中使用,在返回列表中的第一个项目是用于匹配。

See also pathFromIndex()和Handling Tree Models

  1. QWidget QCompleter.widget (self)

[

返回其完成者对象提供的补全部件。

]($docs-qwidget.html)

See also setWidget( ) 。

  1. bool QCompleter.wrapAround (self)

Qt Signal Documentation

  1. void activated (const QString&)

这是该信号的默认超载。

这个信号被发送时,在一个项目popup( )是由用户(通过单击或按回车键)激活。该项目的text给出。

  1. void activated (const QModelIndex&)

这个信号被发送时,在一个项目popup()是由用户激活。 (通过单击或按回车键) 。该项目的indexcompletionModel()给出。

  1. void highlighted (const QString&)

这是该信号的默认超载。

这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的text给出。

  1. void highlighted (const QModelIndex&)

这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的indexcompletionModel()给出。