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的窗口小部件,如QLineEdit和QComboBox。当用户开始输入一个字, QCompleter提示完成单词根据单词列表的可能途径。单词列表是作为一个QAbstractItemModel。 (对于简单的应用,这里所说的列表是静态的,你可以通过一个QStringList到QCompleter的构造函数。 )
Basic Usage
一个QCompleter通常用于与QLineEdit or QComboBox。例如,这里是如何从一个简单的单词列表提供自动补全QLineEdit:
[QStringList]($docs-qstringlist.html) wordList;
wordList << "alpha" << "omega" << "omicron" << "zeta";
[QLineEdit]($docs-qlineedit.html) *lineEdit = new [QLineEdit]($docs-qlineedit.html)(this);
QCompleter *completer = new QCompleter(wordList, this);
completer->setCaseSensitivity([Qt](qt.html).CaseInsensitive);
lineEdit->setCompleter(completer);
A QFileSystemModel可用于提供文件名的自动完成。例如:
QCompleter *completer = new QCompleter(this);
completer->setModel(new [QDirModel](qdirmodel.html)(completer));
lineEdit->setCompleter(completer);
要设置哪些QCompleter应操作模式,通话时间setModel( ) 。默认情况下, QCompleter将尝试匹配completion prefix(也就是说,用户已经开始键入单词)对Qt.EditRole存储在模型的情况下0列数据敏感。这可以使用被改变setCompletionRole( )setCompletionColumn()和setCaseSensitivity( ) 。
如果模型进行排序了用于完成列和作用,可以调用setModelSorting( )与任何QCompleter.CaseSensitivelySortedModel or QCompleter.CaseInsensitivelySortedModel作为参数。在大型模型,这可能会导致显着的性能提升,因为QCompleter就可以使用二进制搜索,而不是线性搜索。
该模型可以是一list model,一table model或tree model。完成对树模型是稍微更复杂,并复盖在Handling Tree Models下面一节。
该completionMode()确定用于提供完井给用户的方式。
Iterating Through Completions
检索单个候选字符串,调用setCompletionPrefix()与需要完成的文本和通话currentCompletion( ) 。您可以通过补全列表迭代如下:
for (int i = 0; completer->setCurrentRow(i); i++)
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
QCompleter.CompletionMode
该枚举指定如何完井提供给用户。
Constant | Value | Description |
---|---|---|
QCompleter.PopupCompletion |
0 |
目前完井显示在一个弹出窗口。 |
QCompleter.InlineCompletion |
2 |
完井行内显示(选定文本)。 |
QCompleter.UnfilteredPopupCompletion |
1 |
所有可能的完成与指示为当前最有可能的建议,显示在一个弹出窗口中。 |
See also setCompletionMode( ) 。
QCompleter.ModelSorting
此枚举指定如何在模型中的项目进行排序。
Constant | Value | Description |
---|---|---|
QCompleter.UnsortedModel |
0 |
该模型是未排序。 |
QCompleter.CaseSensitivelySortedModel |
1 |
该模型是敏感排序的情况。 |
QCompleter.CaseInsensitivelySortedModel |
2 |
该模型是不区分大小写排序的情况。 |
See also setModelSorting( ) 。
Method Documentation
QCompleter.__init__ (self, QObject parent = None)
该parent争论
构造一个完成者对象与给定parent。
QCompleter.__init__ (self, QAbstractItemModel model, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个完成者对象与给定parent提供完井从指定的model。
QCompleter.__init__ (self, QStringList list, QObject parent = None)
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QCompleter与给定对象parent使用指定的list作为尽可能完整的源代码。
Qt.CaseSensitivity QCompleter.caseSensitivity (self)
[
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( )信号被发射了与当前的完成。
int QCompleter.completionColumn (self)
int QCompleter.completionCount (self)
返回完井的数量为当前前缀。对于有大量项目的未排序的模型可以是昂贵的。使用setCurrentRow()和currentCompletion( )遍历所有的补全。
CompletionMode QCompleter.completionMode (self)
QAbstractItemModel QCompleter.completionModel (self)
[
返回完成模型。在完成模型是包含所有当前完成前缀可能的匹配一个只读列表模式。完成模型自动更新,以反映当前的落成。
]($docs-qabstractitemmodel.html)
Note:这个函数的返回值被定义为一个QAbstractItemModel纯粹是为了通用性。这实际返回的一种模型是一个实例QAbstractProxyModel子类。
See also completionPrefix和model( ) 。
QString QCompleter.completionPrefix (self)
int QCompleter.completionRole (self)
QString QCompleter.currentCompletion (self)
返回当前完井管柱。这包括completionPrefix。当一起使用setCurrentRow( ) ,它可以用来遍历所有的比赛。
See also setCurrentRow()和currentIndex( ) 。
QModelIndex QCompleter.currentIndex (self)
返回在当前完成的模型索引completionModel( ) 。
See also setCurrentRow( )currentCompletion()和model( ) 。
int QCompleter.currentRow (self)
返回当前行。
See also setCurrentRow( ) 。
bool QCompleter.event (self, QEvent)
从重新实现QObject.event( ) 。
bool QCompleter.eventFilter (self, QObject o, QEvent e)
从重新实现QObject.eventFilter( ) 。
int QCompleter.maxVisibleItems (self)
QAbstractItemModel QCompleter.model (self)
[
返回提供完井管柱模型。
]($docs-qabstractitemmodel.html)
See also setModel()和completionModel( ) 。
ModelSorting QCompleter.modelSorting (self)
[
QString QCompleter.pathFromIndex (self, QModelIndex index)
返回路径为给定的index。完成者对象使用这个从底层模型得到完成文本。
]($docs-qcompleter.html#ModelSorting-enum)
默认实现返回edit role为列表模式的项目。它返回文件的绝对路径,如果这个模型是一个QFileSystemModel。
See also splitPath( ) 。
QAbstractItemView QCompleter.popup (self)
[
返回用于显示落成弹出。
]($docs-qabstractitemview.html)
QCompleter.setCaseSensitivity (self, Qt.CaseSensitivity caseSensitivity)
QCompleter.setCompletionColumn (self, int column)
QCompleter.setCompletionMode (self, CompletionMode mode)
QCompleter.setCompletionPrefix (self, QString prefix)
这种方法也是一个Qt槽与C + +的签名void setCompletionPrefix(const QString&)
。
QCompleter.setCompletionRole (self, int role)
bool QCompleter.setCurrentRow (self, int row)
当前行设置为row规定。成功返回True ,否则返回False 。
这个功能可以随着所用currentCompletion( )遍历所有可能的补全。
See also currentRow( )currentCompletion()和completionCount( ) 。
QCompleter.setMaxVisibleItems (self, int maxItems)
QCompleter.setModel (self, QAbstractItemModel c)
设置提供完井模型model。该model可以列表模式或树模型。如果模型已经被预先设置,并具有QCompleter作为其母公司,将被删除。
为方便起见,如果model是QFileSystemModel,QCompleter其切换caseSensitivity至Qt.CaseInsensitive在Windows和Qt.CaseSensitive在其他平台上。
See also completionModel( )modelSorting和Handling Tree Models。
QCompleter.setModelSorting (self, ModelSorting sorting)
QCompleter.setPopup (self, QAbstractItemView popup)
该popup说法有它的所有权转移给Qt的。
设置用于显示完井弹出popup。QCompleter采用该视图的所有权。
A QListView时自动创建的completionMode( )被设置为QCompleter.PopupCompletion or QCompleter.UnfilteredPopupCompletion。默认的弹出窗口显示completionColumn( ) 。
确保这个函数被调用视图设置被修改之前。这是必需的,因为视图的属性可能需要一个模型已经被设置的视图(例如,隐藏在视图中的列需要一个模型要在视图中设置) 。
See also popup( ) 。
QCompleter.setWidget (self, QWidget widget)
该widget说法有它的所有权转移给Qt的。
设置用来完成所规定的小部件widget。这个函数被自动调用,当QCompleter设置在QLineEdit using QLineEdit.setCompleter()或上一个QComboBox using QComboBox.setCompleter( ) 。该部件需要明确规定完成为自定义控件时进行设置。
See also widget( )setModel()和setPopup( ) 。
QCompleter.setWrapAround (self, bool wrap)
这种方法也是一个Qt槽与C + +的签名void setWrapAround(bool)
。
QStringList QCompleter.splitPath (self, QString path)
拆分给定的path成用于匹配在每个级别的字符串model( ) 。
splitPath的默认实现( )分割基于文件系统路径QDir.separator()当sourceModel ()是一个QFileSystemModel。
当与表模型中使用,在返回列表中的第一个项目是用于匹配。
See also pathFromIndex()和Handling Tree Models。
QWidget QCompleter.widget (self)
[
返回其完成者对象提供的补全部件。
]($docs-qwidget.html)
bool QCompleter.wrapAround (self)
Qt Signal Documentation
void activated (const QString&)
这是该信号的默认超载。
这个信号被发送时,在一个项目popup( )是由用户(通过单击或按回车键)激活。该项目的text给出。
void activated (const QModelIndex&)
这个信号被发送时,在一个项目popup()是由用户激活。 (通过单击或按回车键) 。该项目的index在completionModel()给出。
void highlighted (const QString&)
这是该信号的默认超载。
这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的text给出。
void highlighted (const QModelIndex&)
这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的index在completionModel()给出。