gpt4 book ai didi

python - PyQt4:Qscintilla 中的自动完成和水平滚动

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:11 26 4
gpt4 key购买 nike

如果自动完成阈值设置为 1,我想在 html 文件的自动完成列表中显示所有属性和标签。我已经尝试使用此代码来使用 API,我在文件加载到新的 mdi child 后设置了此代码(子窗口)但它不工作:

lexer=Qsci.QsciLexerHTML()
api = Qsci.QsciAPIs(lexer)
## Add autocompletion strings
api.add("aLongString")
api.add("aLongerString")
api.add("aDifferentString")
api.add("sOmethingElse")
## Compile the api for use in the lexer
api.prepare()
self.activeMdiChild().setAutoCompletionSource(Qsci.QsciScintilla.AcsAPIs)
self.activeMdiChild().setLexer(lexer)

我的水平滚动条一直可见,我想将其设置为需要滚动条。请告诉如何完成这两个任务。

最佳答案

除了未能设置 auto-completion threshold ,您的示例代码似乎没有任何问题。这是一个最小的工作示例:

from PyQt4 import QtGui, Qsci

class Window(Qsci.QsciScintilla):
def __init__(self):
Qsci.QsciScintilla.__init__(self)
lexer = Qsci.QsciLexerHTML(self)
api = Qsci.QsciAPIs(lexer)
api.add('aLongString')
api.add('aLongerString')
api.add('aDifferentString')
api.add('sOmethingElse')
api.prepare()
self.setAutoCompletionThreshold(1)
self.setAutoCompletionSource(Qsci.QsciScintilla.AcsAPIs)
self.setLexer(lexer)

if __name__ == "__main__":

import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.show()
app.exec_()

按需滚动条功能无法真正解决,除非您愿意自己重新实现所有内容(这并不容易)。底层 Scintilla 控件不直接支持自动水平滚动条隐藏,因为它涉及可能非常昂贵的计算(即确定最长的行)。大多数使用 Scintilla/Qscintilla 的人只是学会忍受永远存在的水平滚动条。

关于python - PyQt4:Qscintilla 中的自动完成和水平滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23183300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com