Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python PyQt4:在QSCINTILA和水平滚动中自动完成_Python_Autocomplete_Scroll_Pyqt4_Qscintilla - Fatal编程技术网

Python PyQt4:在QSCINTILA和水平滚动中自动完成

Python PyQt4:在QSCINTILA和水平滚动中自动完成,python,autocomplete,scroll,pyqt4,qscintilla,Python,Autocomplete,Scroll,Pyqt4,Qscintilla,如果自动完成阈值设置为1,我想在html文件的自动完成列表中显示所有属性和标记。我已尝试使用此代码来使用API我在文件加载到新mdi子窗口(子窗口)后设置了此代码,但它不起作用: lexer=Qsci.QsciLexerHTML() api = Qsci.QsciAPIs(lexer) ## Add autocompletion strings api.add("aLongString") api.add("aLongerString") api.add("aDifferentString")

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

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)

我的水平滚动条在我想将其设置为ScrollBarasNeed时始终可见。请说明如何执行这两项任务。

除了未能设置外,您的示例代码似乎没有任何问题。下面是一个简单的工作示例:

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_()

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

你能告诉我如何从.xml或任何文件加载api,以及在api的load()方法中使用哪些类型的文件。这篇文章救了我一命,因为事实证明(至少在最新的PyQt中)必须将self作为param提供给lexer,因此如果您只编写
lexer=Qsci.qscil=html(self)
,添加的API项将不会显示。所以,尽管看起来很有希望,我还是无法让它工作!