Home · All Classes · Modules · QSS HELP · QSS 案例 · VER007 HOME |
该QCompleter类提供了基于项目模型落成。More...
继承QObject。
该QCompleter类提供了基于项目模型落成。
您可以使用QCompleter提供自动完成功能在任何Qt的窗口小部件,如QLineEdit和QComboBox。当用户开始输入一个字, QCompleter提示完成单词根据单词列表的可能途径。单词列表是作为一个QAbstractItemModel。 (对于简单的应用,这里所说的列表是静态的,你可以通过一个QStringList到QCompleter的构造函数。 )
一个QCompleter通常用于与QLineEdit or QComboBox。例如,这里是如何从一个简单的单词列表提供自动补全QLineEdit:
QStringList wordList; wordList << "alpha" << "omega" << "omicron" << "zeta"; QLineEdit *lineEdit = new QLineEdit(this); QCompleter *completer = new QCompleter(wordList, this); completer->setCaseSensitivity(Qt.CaseInsensitive); lineEdit->setCompleter(completer);
A QFileSystemModel可用于提供文件名的自动完成。例如:
QCompleter *completer = new QCompleter(this); completer->setModel(new QDirModel(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()确定用于提供完井给用户的方式。
检索单个候选字符串,调用setCompletionPrefix()与需要完成的文本和通话currentCompletion( ) 。您可以通过补全列表迭代如下:
for (int i = 0; completer->setCurrentRow(i); i++) qDebug() << completer->currentCompletion() << " is match number " << i;
completionCount()返回完井的总数为当前前缀。completionCount()时,应避免可能的,因为它要求在整个模型的扫描。
completionModel( )返回一个包含所有可能的补全当前完成前缀列表模式,在它们出现在模型中的顺序。该模型可用于显示当前的落成在自定义视图。调用setCompletionPrefix( )自动刷新完成模型。
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。
该枚举指定如何完井提供给用户。
Constant | Value | Description |
---|---|---|
QCompleter.PopupCompletion | 0 | 目前完井显示在一个弹出窗口。 |
QCompleter.InlineCompletion | 2 | 完井行内显示(选定文本)。 |
QCompleter.UnfilteredPopupCompletion | 1 | 所有可能的完成与指示为当前最有可能的建议,显示在一个弹出窗口中。 |
See also setCompletionMode( ) 。
此枚举指定如何在模型中的项目进行排序。
Constant | Value | Description |
---|---|---|
QCompleter.UnsortedModel | 0 | 该模型是未排序。 |
QCompleter.CaseSensitivelySortedModel | 1 | 该模型是敏感排序的情况。 |
QCompleter.CaseInsensitivelySortedModel | 2 | 该模型是不区分大小写排序的情况。 |
See also setModelSorting( ) 。
该parent争论
构造一个完成者对象与给定parent。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个完成者对象与给定parent提供完井从指定的model。
该parent的说法,如果不是没有,原因self通过Qt的,而不是PyQt的拥有。
构造一个QCompleter与给定对象parent使用指定的list作为尽可能完整的源代码。
这种方法也是一个Qt槽与C + +的签名void complete(const QRect& = QRect())。
为QCompleter.PopupCompletion和QCompletion.UnfilteredPopupCompletion模式,调用这个函数显示显示当前落成弹出。默认情况下,如果rect没有指定,则弹出窗口显示的底部widget( ) 。如果rect指定了弹出窗口被显示在矩形的左边缘。
为QCompleter.InlineCompletion模式下,highlighted( )信号被发射了与当前的完成。
返回完井的数量为当前前缀。对于有大量项目的未排序的模型可以是昂贵的。使用setCurrentRow()和currentCompletion( )遍历所有的补全。
返回完成模型。在完成模型是包含所有当前完成前缀可能的匹配一个只读列表模式。完成模型自动更新,以反映当前的落成。
Note:这个函数的返回值被定义为一个QAbstractItemModel纯粹是为了通用性。这实际返回的一种模型是一个实例QAbstractProxyModel子类。
See also completionPrefix和model( ) 。
返回当前完井管柱。这包括completionPrefix。当一起使用setCurrentRow( ) ,它可以用来遍历所有的比赛。
See also setCurrentRow()和currentIndex( ) 。
返回在当前完成的模型索引completionModel( ) 。
See also setCurrentRow( )currentCompletion()和model( ) 。
返回当前行。
See also setCurrentRow( ) 。
从重新实现QObject.event( ) 。
从重新实现QObject.eventFilter( ) 。
返回提供完井管柱模型。
See also setModel()和completionModel( ) 。
返回路径为给定的index。完成者对象使用这个从底层模型得到完成文本。
默认实现返回edit role为列表模式的项目。它返回文件的绝对路径,如果这个模型是一个QFileSystemModel。
See also splitPath( ) 。
返回用于显示落成弹出。
See also setPopup( ) 。
这种方法也是一个Qt槽与C + +的签名void setCompletionPrefix(const QString&)。
当前行设置为row规定。成功返回True ,否则返回False 。
这个功能可以随着所用currentCompletion( )遍历所有可能的补全。
See also currentRow( )currentCompletion()和completionCount( ) 。
设置提供完井模型model。该model可以列表模式或树模型。如果模型已经被预先设置,并具有QCompleter作为其母公司,将被删除。
为方便起见,如果model是QFileSystemModel,QCompleter其切换caseSensitivity至Qt.CaseInsensitive在Windows和Qt.CaseSensitive在其他平台上。
See also completionModel( )modelSorting和Handling Tree Models。
该popup说法有它的所有权转移给Qt的。
设置用于显示完井弹出popup。QCompleter采用该视图的所有权。
A QListView时自动创建的completionMode( )被设置为QCompleter.PopupCompletion or QCompleter.UnfilteredPopupCompletion。默认的弹出窗口显示completionColumn( ) 。
确保这个函数被调用视图设置被修改之前。这是必需的,因为视图的属性可能需要一个模型已经被设置的视图(例如,隐藏在视图中的列需要一个模型要在视图中设置) 。
See also popup( ) 。
该widget说法有它的所有权转移给Qt的。
设置用来完成所规定的小部件widget。这个函数被自动调用,当QCompleter设置在QLineEdit using QLineEdit.setCompleter()或上一个QComboBox using QComboBox.setCompleter( ) 。该部件需要明确规定完成为自定义控件时进行设置。
See also widget( )setModel()和setPopup( ) 。
这种方法也是一个Qt槽与C + +的签名void setWrapAround(bool)。
拆分给定的path成用于匹配在每个级别的字符串model( ) 。
splitPath的默认实现( )分割基于文件系统路径QDir.separator()当sourceModel ()是一个QFileSystemModel。
当与表模型中使用,在返回列表中的第一个项目是用于匹配。
See also pathFromIndex()和Handling Tree Models。
返回其完成者对象提供的补全部件。
See also setWidget( ) 。
这是该信号的默认超载。
这个信号被发送时,在一个项目popup( )是由用户(通过单击或按回车键)激活。该项目的text给出。
这个信号被发送时,在一个项目popup()是由用户激活。 (通过单击或按回车键) 。该项目的index在completionModel()给出。
这是该信号的默认超载。
这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的text给出。
这个信号被发送时,在一个项目popup()是由用户突出显示。它也被发送,如果complete( )被调用,completionMode()设定为QCompleter.InlineCompletion。该项目的index在completionModel()给出。
PyQt 4.10.3 for X11 | Copyright © Riverbank Computing Ltd and Nokia 2012 | Qt 4.8.5 |