问题标签 [qcompleter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QLineEdit:自动将反斜杠附加到目录名称
我正在尝试自动为 a 中的有效文件路径添加反斜杠,QLineEdit
用于显示 a 的当前路径QFileSystemModel
。
代码如下所示:
运行代码时得到以下输出:
当我Enter从 lineEdit 中按下键时它可以正常工作,但是如果文本由 设置QCompleter
,我仍然会得到相同的调试输出,显示文本已更改,但斜线不会出现在 lineEdit 中。是否以QCompleter
某种方式取消了文本?
python - PyQt4 Completer to a qlineedit
我正在尝试为行编辑小部件制作一个完成者。
这是信号:
这是功能:
当我键入时,程序会显示要完成的内容,然后,python 进程会冻结并崩溃。
我在 64 位的 Windows 7 上运行带有 pyqt4 的 Python 2.7.3,它在我的另一台具有 32 位操作系统的计算机上具有相同的设置,并且工作正常。
c++ - QTableView + QCompleter 委托返回错误值
我正在使用 Qt (C++),特别是我有一个使用QCompleter
. 我对 Qt很陌生并且为此苦苦挣扎。
我的问题是,即使QCompleter
显示正确的值,它返回的数据始终是第一个元素的数据。
例如,如果我有以下数据(由破折号分隔的字段,数据组成):
我输入D, QCompleter 显示 3 个选项,但无论我选择哪个,都会发生这种情况:
- 实际的单元格编辑“正确”(该值反映了所选择的内容)
- 回调接收到错误值(总是第一个元素的 ID)
所以在这种情况下,我总是会得到(假设名称是自动完成字段):1-Daniel-197598713-Los Angeles或1-Don-197598713-Los Angeles或1-David-197598713-Los Angeles
此外,出于某种动机,setEditorData 过程根本不做任何事情(如果我评论它,行为根本不会改变)
这是我的整个委托来源:
python - QLineEdit 上的 QCompleter 用于插入的部分文本
我做了一个QLineEdit
用于阅读中缀数学表达式。运算符仅限于+-*/
和括号。值可以是数字或表示数值的变量名称。我想自动完成变量名。
问题是,显然简单QComplete
只适用于单个预定义的单词/短语。它们在其他词之间不起作用(正如您在修改表达式时可能期望的那样)。
我尝试阅读 Tree Model Completer,但由于我使用 Python 编程,这对我来说并没有太大帮助。有人知道用 python 编码的简单树模型完成器示例吗?
html - QTextEdit 添加缩写系统
我目前正在使用文本编辑器,我想创建一个缩写系统。我的意思是,例如,当您编写 html5 然后按下键选项卡时,您可以展开如下代码:
也许我使用了错误的关键字,但我不知道如何制作这样的函数。我找到了 QCompleter 类,但它似乎比缩写系统更适合完成。
谁能帮我 ?最好的问候, zed13
qt - 完成具有多个模型/类别的 QLineEdit
我想为 a 构建一个完成,QLineEdit
它可以采用多个完成模型并将它们组织为类别。
我有一个基于QSortFilterProxyModel
项目的树模型的工作解决方案:
模型中的根项显示为类别,每个根项的子项显示为过滤项。然后是自定义的QTreeView
,因此可以正确显示,选项卡忽略类别等。
这很好用——但是它使得编写新的完成变得非常困难(例如,对于设置的可能值)。
每个完成都需要是一个包含所有类别的树模型。我更喜欢为每个类别编写简单的列表模型,然后能够将它们组合成一个QTreeModel
,即类似这样的东西(伪 Python 代码):
我想到了一些不同的解决方案,但我不确定要走哪条路,因为所有这些解决方案都觉得实施起来并不简单:
- 编写一个
QAbstractProxyModel
类(或自定义模型),将几个列表模型组合成一个树模型,并保持视图部分不变。
然而,用 Python 编写自定义树模型很困难(如果你做错了什么,通常会出现段错误),而且我过去曾遇到过性能问题(与 a 相比QStandardItemModel
,因为基础模型中有几千个项目)。
- 为填充树模型的每个模型编写函数(给定一个类别和一个项目列表)。
这使得编写动态模型而不是仅仅拥有静态项目列表变得更加困难。
- 使用几个列表模型,并将视图调整
QVBoxLayout
为QListView
s 的 a。
到目前为止,这对我来说是最有希望的。但是,通过完成和过滤实现选项卡以使其正常工作也可能很麻烦,并且也要适当地调整子视图的大小。
有没有我没有考虑过的更简单的方法?哪种方法可能是最不痛苦的?
c++ - QCompleter 运行时崩溃
我想做一个代码完成器,所以我将 QCompleter 子类化:
http://hastebin.com/qeyumevisa.cpp
但是,当我尝试运行此代码时,出现运行时错误:
调试输出显示:
崩溃似乎来自第 53 行:
我怎样才能修复这个错误?谢谢
qt - 大型模型的 QCompleter
QCompleter
在大型数据集(大型模型)上工作稍慢:当我开始在其中输入字符时,QCombobox
它会经过几秒钟来显示带有变体的自动完成弹出窗口,当输入第二个字符QCompleter
在几秒钟内也没有对按键做出反应时。下一个字符工作正常。模型大小约为 100K 记录。QCompleter
是否可以在第二个或第三个输入符号后提高性能或显示弹出窗口?有没有一些很好的例子?
qt - QCompleter 弹出位置
我在尝试移动 QCompleter 弹出视图位置时遇到问题。
我尝试了QCompeter:complete,它会在我想要的位置弹出完成者视图。但是,如果我开始输入它,请关闭它,然后在“默认”位置打开完成程序。
我还尝试了QCompleter:setPopup()函数。我创建了一个 QListView 并尝试移动到不同的位置。QCompleter 弹出视图仍然保持在相同的位置。
在我的项目中,我使用了一个包装 QLineEdit 的 QFrame。我希望完成者视图将获得 QFrame 位置。我通过 setFixedWidth() 函数成功设置了完成者视图宽度。但不要移动位置。
有什么建议么 ?
谢谢。
python - PySide QT 完成器比前缀方法更灵活
据我所知,QCompleter 只能为以 QLineEdit 中输入的相同字符串开头的字符串提供建议的完成列表。我希望它提出任何包含它作为子字符串的字符串,无论它是在它的开头还是在它的中间......也就是说,对于列表listOfStrings和给定的substring,我希望它建议每个string in [s for s in listOfStrings if substring in s] 而不是实际的 [s for s in listOfStrings if substring == s[:len(substring)]]
我试图继承 QCompleter 类,但没有任何运气......这是我到目前为止所拥有的:
从 PySide 导入 QtCore、QtGui
它部分工作......我很难解决的剩余问题是
- 列表项技巧“completionPrefix = self.text() + event.text()”对于获取 QLineEdit 在“super(AutoCompleteEdit, self).keyPressEvent(event )" 调用...它不适用于退格键、箭头键等...
- 列表项 使用“self.parent().setText(self.stringlist[index.row()])”调用在activatedWrap() 中设置的QLineEdit 的文本被QCompleter 覆盖(并设置为不正确的值) ...
可以说,整个方法不是很优雅,因为它只是试图修补 QCompleter 的行为,同时让它在后台找到自己的匹配项......但到目前为止我还没有找到更好的方法来解决这个问题!