本文整理汇总了Python中PyQt4.Qsci.QsciAPIs.load方法的典型用法代码示例。如果您正苦于以下问题:Python QsciAPIs.load方法的具体用法?Python QsciAPIs.load怎么用?Python QsciAPIs.load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.Qsci.QsciAPIs
的用法示例。
在下文中一共展示了QsciAPIs.load方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: PrepareAPIDialog
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class PrepareAPIDialog(QDialog):
def __init__(self, api_lexer, api_files, pap_file, parent=None):
QDialog.__init__(self, parent)
self.ui = Ui_APIsDialogPythonConsole()
self.ui.setupUi(self)
self.setWindowTitle(QCoreApplication.translate("PythonConsole", "Compile APIs"))
self.ui.plainTextEdit.setVisible(False)
self.ui.textEdit_Qsci.setVisible(False)
self.adjustSize()
self._api = None
self.ui.buttonBox.rejected.connect(self._stopPreparation)
self._api_files = api_files
self._api_lexer = api_lexer
self._pap_file = pap_file
def _clearLexer(self):
# self.ui.textEdit_Qsci.setLexer(0)
self.qlexer = None
def _stopPreparation(self):
if self._api is not None:
self._api.cancelPreparation()
self._api = None
self._clearLexer()
self.close()
def _preparationFinished(self):
self._clearLexer()
if os.path.exists(self._pap_file):
os.remove(self._pap_file)
self.ui.label.setText(QCoreApplication.translate("PythonConsole", "Saving prepared file..."))
prepd = self._api.savePrepared(unicode(self._pap_file))
rslt = self.trUtf8("Error")
if prepd:
rslt = QCoreApplication.translate("PythonConsole", "Saved")
self.ui.label.setText(u"{0} {1}".format(self.ui.label.text(), rslt))
self._api = None
self.ui.progressBar.setVisible(False)
self.ui.buttonBox.button(QDialogButtonBox.Cancel).setText(QCoreApplication.translate("PythonConsole", "Done"))
self.adjustSize()
def prepareAPI(self):
# self.ui.textEdit_Qsci.setLexer(0)
exec(u"self.qlexer = {0}(self.ui.textEdit_Qsci)".format(self._api_lexer))
# self.ui.textEdit_Qsci.setLexer(self.qlexer)
self._api = QsciAPIs(self.qlexer)
self._api.apiPreparationFinished.connect(self._preparationFinished)
for api_file in self._api_files:
self._api.load(unicode(api_file))
try:
self._api.prepare()
except Exception as err:
self._api = None
self._clearLexer()
self.ui.label.setText(QCoreApplication.translate("PythonConsole", "Error preparing file..."))
self.ui.progressBar.setVisible(False)
self.ui.plainTextEdit.setVisible(True)
self.ui.plainTextEdit.insertPlainText(err)
self.ui.buttonBox.button(QDialogButtonBox.Cancel).setText(self.trUtf8("Done"))
self.adjustSize()
示例2: __init__
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
def __init__(self, parent=None):
QsciScintilla.__init__(self, parent)
self.setTabWidth(4)
self.setTabIndents(True)
self.setIndentationsUseTabs(False)
self._lexer = QsciLexerPython()
self._lexer.setFont(QFont('DejaVu Sans Mono'))
self._lexer.setIndentationWarning(QsciLexerPython.Tabs)
# load current preview to lexer
api = QsciAPIs(self._lexer)
api.load('/tmp/preview.py')
api.prepare()
self.setLexer(self._lexer)
self.setAutoCompletionSource(QsciScintilla.AcsAll)
self.setAutoCompletionThreshold(2)
self.setAutoIndent(True)
self.setCaretForegroundColor(g.cursor_color)
self.zoomTo(5)
示例3: PrepareAPIs
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class PrepareAPIs(QObject):
def __init__(self, api_lexer, api_files, pap_file):
QObject.__init__(self)
self._api = None
self._api_files = api_files
self._api_lexer = api_lexer
self._pap_file = pap_file
def _clearLexer(self):
self.qlexer = None
def _stopPreparation(self):
if self._api is not None:
self._api.cancelPreparation()
self._api = None
sys.exit(1)
def _preparationFinished(self):
self._clearLexer()
try:
if os.path.exists(self._pap_file):
os.remove(self._pap_file)
prepd = self._api.savePrepared(unicode(self._pap_file))
self._api = None
sys.exit(0 if prepd else 1)
except Exception as err:
self._api = None
sys.exit(1)
def prepareAPI(self):
try:
self._api = QsciAPIs(self._api_lexer)
self._api.apiPreparationFinished.connect(self._preparationFinished)
for api_file in self._api_files:
self._api.load(unicode(api_file))
self._api.prepare()
except Exception as err:
self._api = None
sys.exit(1)
示例4: ShellScintilla
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
def _setMinimumHeight(self):
fnt = self.settings.value("pythonConsole/fontfamilytext", "Monospace")
fntSize = self.settings.value("pythonConsole/fontsize", 10, type=int)
fm = QFontMetrics(QFont(fnt, fntSize))
self.setMinimumHeight(fm.height() + 10)
def refreshSettingsShell(self):
# Set Python lexer
self.setLexers()
threshold = self.settings.value("pythonConsole/autoCompThreshold", 2, type=int)
self.setAutoCompletionThreshold(threshold)
radioButtonSource = self.settings.value("pythonConsole/autoCompleteSource", 'fromAPI')
autoCompEnabled = self.settings.value("pythonConsole/autoCompleteEnabled", True, type=bool)
if autoCompEnabled:
if radioButtonSource == 'fromDoc':
self.setAutoCompletionSource(self.AcsDocument)
elif radioButtonSource == 'fromAPI':
self.setAutoCompletionSource(self.AcsAPIs)
elif radioButtonSource == 'fromDocAPI':
self.setAutoCompletionSource(self.AcsAll)
else:
self.setAutoCompletionSource(self.AcsNone)
cursorColor = self.settings.value("pythonConsole/cursorColor", QColor(Qt.black))
self.setCaretForegroundColor(cursorColor)
# Sets minimum height for input area based of font metric
self._setMinimumHeight()
def showHistory(self):
if not self.historyDlg.isVisible():
self.historyDlg.show()
self.historyDlg._reloadHistory()
self.historyDlg.activateWindow()
def autoCompleteKeyBinding(self):
radioButtonSource = self.settings.value("pythonConsole/autoCompleteSource", 'fromAPI')
autoCompEnabled = self.settings.value("pythonConsole/autoCompleteEnabled", True, type=bool)
if autoCompEnabled:
if radioButtonSource == 'fromDoc':
self.autoCompleteFromDocument()
elif radioButtonSource == 'fromAPI':
self.autoCompleteFromAPIs()
elif radioButtonSource == 'fromDocAPI':
self.autoCompleteFromAll()
def commandConsole(self, command):
if not self.is_cursor_on_last_line():
self.move_cursor_to_end()
line, pos = self.getCursorPosition()
selCmdLenght = len(self.text(line))
self.setSelection(line, 4, line, selCmdLenght)
self.removeSelectedText()
if command == "processing":
# import Processing class
self.append('import processing')
elif command == "qtCore":
# import QtCore class
self.append('from PyQt4.QtCore import *')
elif command == "qtGui":
# import QtGui class
self.append('from PyQt4.QtGui import *')
self.entered()
self.move_cursor_to_end()
self.setFocus()
示例5: ShellScintilla
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
radioButtonSource = self.settings.value("pythonConsole/autoCompleteSource").toString()
autoCompEnabled = self.settings.value("pythonConsole/autoCompleteEnabled").toBool()
if autoCompEnabled:
if radioButtonSource == "fromDoc":
self.autoCompleteFromDocument()
elif radioButtonSource == "fromAPI":
self.autoCompleteFromAPIs()
elif radioButtonSource == "fromDocAPI":
self.autoCompleteFromAll()
def commandConsole(self, command):
if not self.is_cursor_on_last_line():
self.move_cursor_to_end()
line, pos = self.getCursorPosition()
selCmdLenght = self.text(line).length()
self.setSelection(line, 4, line, selCmdLenght)
self.removeSelectedText()
if command == "sextante":
# import Sextante class
self.append("import sextante")
elif command == "qtCore":
# import QtCore class
self.append("from PyQt4.QtCore import *")
elif command == "qtGui":
# import QtGui class
self.append("from PyQt4.QtGui import *")
self.entered()
self.move_cursor_to_end()
self.setFocus()
def setLexers(self):
self.lexer = QsciLexerPython()
loadFont = self.settings.value("pythonConsole/fontfamilytext", "Monospace").toString()
fontSize = self.settings.value("pythonConsole/fontsize", 10).toInt()[0]
font = QFont(loadFont)
font.setFixedPitch(True)
font.setPointSize(fontSize)
font.setStyleHint(QFont.TypeWriter)
font.setStretch(QFont.SemiCondensed)
font.setLetterSpacing(QFont.PercentageSpacing, 87.0)
font.setBold(False)
self.lexer.setDefaultFont(font)
self.lexer.setColor(Qt.red, 1)
self.lexer.setColor(Qt.darkGreen, 5)
self.lexer.setColor(Qt.darkBlue, 15)
self.lexer.setFont(font, 1)
self.lexer.setFont(font, 3)
self.lexer.setFont(font, 4)
self.api = QsciAPIs(self.lexer)
chekBoxAPI = self.settings.value("pythonConsole/preloadAPI", True).toBool()
if chekBoxAPI:
self.api.loadPrepared(QgsApplication.pkgDataPath() + "/python/qsci_apis/pyqgis_master.pap")
else:
apiPath = self.settings.value("pythonConsole/userAPI").toStringList()
for i in range(0, len(apiPath)):
self.api.load(QString(unicode(apiPath[i])))
self.api.prepare()
self.lexer.setAPIs(self.api)
self.setLexer(self.lexer)
## TODO: show completion list for file and directory
示例6: Editor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
elif radioButtonSource == 'fromAPI':
self.setAutoCompletionSource(self.AcsAPIs)
elif radioButtonSource == 'fromDocAPI':
self.setAutoCompletionSource(self.AcsAll)
else:
self.setAutoCompletionSource(self.AcsNone)
def autoCompleteKeyBinding(self):
radioButtonSource = self.settings.value("pythonConsole/autoCompleteSourceEditor").toString()
autoCompEnabled = self.settings.value("pythonConsole/autoCompleteEnabledEditor").toBool()
if autoCompEnabled:
if radioButtonSource == 'fromDoc':
self.autoCompleteFromDocument()
elif radioButtonSource == 'fromAPI':
self.autoCompleteFromAPIs()
elif radioButtonSource == 'fromDocAPI':
self.autoCompleteFromAll()
def on_margin_clicked(self, nmargin, nline, modifiers):
# Toggle marker for the line the margin was clicked on
if self.markersAtLine(nline) != 0:
self.markerDelete(nline, self.ARROW_MARKER_NUM)
else:
self.markerAdd(nline, self.ARROW_MARKER_NUM)
def setLexers(self):
from qgis.core import QgsApplication
self.lexer = QsciLexerPython()
self.lexer.setIndentationWarning(QsciLexerPython.Inconsistent)
self.lexer.setFoldComments(True)
self.lexer.setFoldQuotes(True)
loadFont = self.settings.value("pythonConsole/fontfamilytextEditor", "Monospace").toString()
fontSize = self.settings.value("pythonConsole/fontsizeEditor", 10).toInt()[0]
font = QFont(loadFont)
font.setFixedPitch(True)
font.setPointSize(fontSize)
font.setStyleHint(QFont.TypeWriter)
font.setStretch(QFont.SemiCondensed)
font.setLetterSpacing(QFont.PercentageSpacing, 87.0)
font.setBold(False)
self.lexer.setDefaultFont(font)
self.lexer.setColor(Qt.red, 1)
self.lexer.setColor(Qt.darkGreen, 5)
self.lexer.setColor(Qt.darkBlue, 15)
self.lexer.setFont(font, 1)
self.lexer.setFont(font, 3)
self.lexer.setFont(font, 4)
self.api = QsciAPIs(self.lexer)
chekBoxAPI = self.settings.value("pythonConsole/preloadAPI", True).toBool()
if chekBoxAPI:
self.api.loadPrepared( QgsApplication.pkgDataPath() + "/python/qsci_apis/pyqgis_master.pap" )
else:
apiPath = self.settings.value("pythonConsole/userAPI").toStringList()
for i in range(0, len(apiPath)):
self.api.load(QString(unicode(apiPath[i])))
self.api.prepare()
self.lexer.setAPIs(self.api)
self.setLexer(self.lexer)
def move_cursor_to_end(self):
示例7: ScriptEdit
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
settings = QSettings()
fontName = settings.value('pythonConsole/fontfamilytext', 'Monospace')
fontSize = int(settings.value('pythonConsole/fontsize', size))
self.defaultFont = QFont(fontName)
self.defaultFont.setFixedPitch(True)
self.defaultFont.setPointSize(fontSize)
self.defaultFont.setStyleHint(QFont.TypeWriter)
self.defaultFont.setStretch(QFont.SemiCondensed)
self.defaultFont.setLetterSpacing(QFont.PercentageSpacing, 87.0)
self.defaultFont.setBold(False)
self.boldFont = QFont(self.defaultFont)
self.boldFont.setBold(True)
self.italicFont = QFont(self.defaultFont)
self.italicFont.setItalic(True)
self.setFont(self.defaultFont)
self.setMarginsFont(self.defaultFont)
def initShortcuts(self):
(ctrl, shift) = (self.SCMOD_CTRL << 16, self.SCMOD_SHIFT << 16)
# Disable some shortcuts
self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord('D') + ctrl)
self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord('L') + ctrl)
self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord('L') + ctrl
+ shift)
self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord('T') + ctrl)
#self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord("Z") + ctrl)
#self.SendScintilla(QsciScintilla.SCI_CLEARCMDKEY, ord("Y") + ctrl)
# Use Ctrl+Space for autocompletion
self.shortcutAutocomplete = QShortcut(QKeySequence(Qt.CTRL
+ Qt.Key_Space), self)
self.shortcutAutocomplete.setContext(Qt.WidgetShortcut)
self.shortcutAutocomplete.activated.connect(self.autoComplete)
def autoComplete(self):
self.autoCompleteFromAll()
def setLexerType(self, lexerType):
self.lexerType = lexerType
self.initLexer()
def initLexer(self):
if self.lexerType == self.LEXER_PYTHON:
self.lexer = QsciLexerPython()
colorDefault = QColor('#2e3436')
colorComment = QColor('#c00')
colorCommentBlock = QColor('#3465a4')
colorNumber = QColor('#4e9a06')
colorType = QColor('#4e9a06')
colorKeyword = QColor('#204a87')
colorString = QColor('#ce5c00')
self.lexer.setDefaultFont(self.defaultFont)
self.lexer.setDefaultColor(colorDefault)
self.lexer.setColor(colorComment, 1)
self.lexer.setColor(colorNumber, 2)
self.lexer.setColor(colorString, 3)
self.lexer.setColor(colorString, 4)
self.lexer.setColor(colorKeyword, 5)
self.lexer.setColor(colorString, 6)
self.lexer.setColor(colorString, 7)
self.lexer.setColor(colorType, 8)
self.lexer.setColor(colorCommentBlock, 12)
self.lexer.setColor(colorString, 15)
self.lexer.setFont(self.italicFont, 1)
self.lexer.setFont(self.boldFont, 5)
self.lexer.setFont(self.boldFont, 8)
self.lexer.setFont(self.italicFont, 12)
self.api = QsciAPIs(self.lexer)
settings = QSettings()
useDefaultAPI = bool(settings.value('pythonConsole/preloadAPI',
True))
if useDefaultAPI:
# Load QGIS API shipped with Python console
self.api.loadPrepared(
os.path.join(QgsApplication.pkgDataPath(),
'python', 'qsci_apis', 'pyqgis.pap'))
else:
# Load user-defined API files
apiPaths = settings.value('pythonConsole/userAPI', [])
for path in apiPaths:
self.api.load(path)
self.api.prepare()
self.lexer.setAPIs(self.api)
elif self.lexerType == self.LEXER_R:
# R lexer
self.lexer = LexerR()
self.setLexer(self.lexer)
示例8: PythonEdit
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
if not self.is_cursor_on_last_line():
self.move_cursor_to_end()
line, pos = self.getCursorPosition()
selCmdLenght = self.text(line).length()
self.setSelection(line, 4, line, selCmdLenght)
self.removeSelectedText()
if command == "iface":
"""Import QgisInterface class"""
self.append('from qgis.utils import iface')
self.move_cursor_to_end()
elif command == "sextante":
"""Import Sextante class"""
self.append('from sextante.core.Sextante import Sextante')
self.move_cursor_to_end()
elif command == "cLayer":
"""Retrieve current Layer from map camvas"""
self.append('cLayer = iface.mapCanvas().currentLayer()')
self.move_cursor_to_end()
elif command == "qtCore":
"""Import QtCore class"""
self.append('from PyQt4.QtCore import *')
self.move_cursor_to_end()
elif command == "qtGui":
"""Import QtGui class"""
self.append('from PyQt4.QtGui import *')
self.move_cursor_to_end()
self.setFocus()
def setLexers(self):
from qgis.core import QgsApplication
self.lexer = QsciLexerPython()
settings = QSettings()
loadFont = settings.value("pythonConsole/fontfamilytext", "Monospace").toString()
fontSize = settings.value("pythonConsole/fontsize", 10).toInt()[0]
font = QFont(loadFont)
font.setFixedPitch(True)
font.setPointSize(fontSize)
self.lexer.setDefaultFont(font)
self.lexer.setColor(Qt.red, 1)
self.lexer.setColor(Qt.darkGreen, 5)
self.lexer.setColor(Qt.darkBlue, 15)
self.lexer.setFont(font, 1)
self.lexer.setFont(font, 3)
self.lexer.setFont(font, 4)
self.api = QsciAPIs(self.lexer)
chekBoxAPI = settings.value( "pythonConsole/preloadAPI" ).toBool()
if chekBoxAPI:
self.api.loadPrepared( QgsApplication.pkgDataPath() + "/python/qsci_apis/pyqgis_master.pap" )
else:
apiPath = settings.value("pythonConsole/userAPI").toStringList()
for i in range(0, len(apiPath)):
self.api.load(QString(unicode(apiPath[i])))
self.api.prepare()
self.lexer.setAPIs(self.api)
self.setLexer(self.lexer)
## TODO: show completion list for file and directory
def completion_list_selected(self, id, txt):
if id == 1:
txt = unicode(txt)
示例9: Editor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class Editor(QsciScintilla):
ARROW_MARKER_NUM = 8
def __init__(self,parent,text,lang,colorStyle):
QsciScintilla.__init__(self,parent)
self.parent = parent
self.lang = lang
self.fontSize = fontSize
self.colorStyle = colorStyle
self.errorLines = []
self.setText(text)
#if(config.encoding() == Encoding.ASCII):
# self.setUtf8(False)
#else:
self.setUtf8(True)
if(eol == 0):
self.setEolMode(self.EolWindows)
elif(eol == 1):
self.setEolMode(self.EolUnix)
else:
self.setEolMode(self.EolMac)
self.init()
self.setTabWidth(config.tabwidth())
def init(self):
#Margin
#print self.marginType(self.SymbolMargin)
# Clickable margin 1 for showing markers
self.setMarginSensitivity(0, True)
#self.setMarginsBackgroundColor(self.colorStyle.margin)
#self.connect(self,SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'),self.on_margin_clicked)
self.cursorPositionChanged.connect(self.parent.updateLine)
# Margin 0 is used for line numbers
#self.setMarginLineNumbers(0, True)
#self.setMarginWidth(0, self.fontmetrics.width("0000") + 6)
self.setMargin(config.margin())
#self.linesChanged.connect(self.changeMarginWidht())
#Caret
self.setCaretLineBackgroundColor(self.colorStyle.caret)
self.setCaretLineVisible(True)
#Indicator
#self.setIndicatorForegroundColor(self.colorStyle.color)
#self.setIndicatorOutlineColor(self.colorStyle.paper)
#Marker
self.markerDefine(QsciScintilla.RightArrow,self.ARROW_MARKER_NUM)
self.markerDefine(Auto.auto_error,0)
self.setMarkerBackgroundColor(self.colorStyle.marker,self.ARROW_MARKER_NUM)
self.font = QFont(config.fontName(),config.fontSize())
#self.font.setFixedPitch(True)
self.setFont(self.font)
self.fontmetrics = QFontMetrics(self.font)
self.setMarginsFont(self.font)
#Code-Complete
self.registerImage(0,Auto.auto_class2)
self.registerImage(1,Auto.auto_method)
self.registerImage(2,Auto.auto_field)
self.registerImage(3,Auto.auto_package)
self.setAutoCompletionThreshold(config.thresh())
self.setAutoCompletionSource(QsciScintilla.AcsAPIs)
self.setBraceMatching(QsciScintilla.SloppyBraceMatch)
self.setBackspaceUnindents(True)
self.setAutoCompletionCaseSensitivity(True)
self.setIndentationsUseTabs(True)
self.setTabIndents(True)
self.setAutoIndent(True)
self.setIndent(config.indent())
#self.copyAvailable.connect(self.highlightWord)
#self.indicatorClicked.connect(self.indicate)
self.setIndicatorOutlineColor(QColor("#FFFFFF"))
self.indicatorDefine(self.INDIC_BOX)
self.setFolding(QsciScintilla.BoxedTreeFoldStyle)
#self.setAutoCompletionSource(QsciScintilla.AcsAll)
#self.SendScintilla(QsciScintilla.SCI_STYLESETFONT, 1, 'Courier')
#self.setIndentation(5,25)
#self.setSelectionBackgroundColor()
#self.setSelectionForegroundColor()
#self.SendScintilla(QsciScintilla.SCI_MARKERSETBACK,11,QColor(220,220,220))
self.setLanguage()
self.lexer.setDefaultFont(self.font)
self.api = QsciAPIs(self.lexer)
self.api.load(ospathjoin(apiDir,"emo.api"))
self.api.prepare()
self.lexer.setAPIs(self.api) #Very important do not change line otherwise gg
self.setLexer(self.lexer) #Very important do not change line otherwise gg
def setColorStyle(self,colorStyle):
self.colorStyle = colorStyle
self.setCaretLineBackgroundColor(self.colorStyle.caret)
self.setMarginsBackgroundColor(self.colorStyle.margin)
self.setMarkerBackgroundColor(self.colorStyle.marker,self.ARROW_MARKER_NUM)
if self.lang == 2:
self.lexer.setColorStyle(self.colorStyle)
#self.lexer.setColor(QColor("#008000"),0)
def setLanguage(self):
if self.lang == 0:
#.........这里部分代码省略.........
示例10: Editor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class Editor(QsciScintilla):
ARROW_MARKER_NUM = 8
#fontSize = fontSize
def __init__(self,parent,text,lang,colorStyle):
QsciScintilla.__init__(self,parent)
self.parent = parent
self.lang = lang
self.fontSize = fontSize
self.colorStyle = colorStyle
#self.init()
self.setText(text)
#self.addAction(QAction("gg",self))
# Clickable margin 1 for showing markers
self.setMarginSensitivity(1, True)
self.connect(self,SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'),self.on_margin_clicked)
self.markerDefine(QsciScintilla.RightArrow,self.ARROW_MARKER_NUM)
self.registerImage(0,os_pixmap("class_obj"))
self.registerImage(1,os_pixmap("method_obj"))
self.registerImage(2,os_pixmap("field_public_obj"))
# Brace matching: enable for a brace immediately before or after
# the current position
self.setBraceMatching(QsciScintilla.SloppyBraceMatch)
self.setAutoCompletionThreshold(threshold)
self.setAutoCompletionSource(QsciScintilla.AcsAPIs)
#self.setFolding(QsciScintilla.BoxedTreeFoldStyle)
#self.setAutoCompletionSource(QsciScintilla.AcsAll)
#self.SendScintilla(QsciScintilla.SCI_STYLESETFONT, 1, 'Courier')
self.init()
def init(self):
self.setCaretLineBackgroundColor(self.colorStyle.caret)
self.setMarginsBackgroundColor(self.colorStyle.margin)
self.setMarkerBackgroundColor(self.colorStyle.marker,self.ARROW_MARKER_NUM)
self.font = QFont()
self.font.setFamily(fontName)
#self.font.setFixedPitch(True)
self.font.setPointSize(self.fontSize)
self.setFont(self.font)
self.fontmetrics = QFontMetrics(self.font)
self.setMarginsFont(self.font)
# Margin 0 is used for line numbers
#self.setMarginLineNumbers(0, True)
#self.setMarginWidth(0, self.fontmetrics.width("0000") + 6)
self.setMarginLineNumbers(1, True)
self.setMarginWidth(1, QString("-------"))
self.setCaretLineVisible(True)
if self.lang == 0:
self.lexer = QsciLexerPython()
elif self.lang == 1:
self.lexer = QsciLexerCPP()
elif self.lang == 2:
self.lexer = LexerSquirrel(self.colorStyle,self)
self.lexer.setDefaultFont(self.font)
self.api = QsciAPIs(self.lexer)
self.api.load(ospathjoin(apiDir,"emo.api"))
self.api.prepare()
self.lexer.setAPIs(self.api) #Very important do not change line otherwise gg
self.setLexer(self.lexer) #Very important do not change line otherwise gg
def setColorStyle(self,colorStyle):
self.colorStyle = colorStyle
self.setCaretLineBackgroundColor(self.colorStyle.caret)
self.setMarginsBackgroundColor(self.colorStyle.margin)
self.setMarkerBackgroundColor(self.colorStyle.marker,self.ARROW_MARKER_NUM)
if self.lang == 2:
self.lexer.setColorStyle(self.colorStyle)
self.lexer.setColor(QColor("#008000"),0)
def on_margin_clicked(self, nmargin, nline, modifiers):
# Toggle marker for the line the margin was clicked on
if self.markersAtLine(nline) != 0:
self.markerDelete(nline, self.ARROW_MARKER_NUM)
else:
self.markerAdd(nline, self.ARROW_MARKER_NUM)
def zoomin(self):
self.fontSize += 1
config.setFontSize(self.fontSize)
self.font.setPointSize(self.fontSize)
#self.setFont(self.font)
self.lexer.setFont(self.font)
self.setMarginsFont(self.font)
def zoomout(self):
self.fontSize -= 1
config.setFontSize(self.fontSize)
self.font.setPointSize(self.fontSize)
#self.setFont(self.font)
self.lexer.setFont(self.font)
self.setMarginsFont(self.font)
def setFontName(self,name):
self.font.setFamily(name)
self.lexer.setFont(self.font)
def setThreshold(self,val):
self.setAutoCompletionThreshold(val)
#.........这里部分代码省略.........
示例11: QsciEditor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
# 0: Folding margin
self.setMarginWidth(2, 14)
self.setFolding(QsciScintilla.BoxedFoldStyle)
# Colors
fcol = CONF.get('scintilla', 'margins/foregroundcolor')
bcol = CONF.get('scintilla', 'margins/backgroundcolor')
if fcol:
self.setMarginsForegroundColor(QColor(fcol))
if bcol:
self.setMarginsBackgroundColor(QColor(bcol))
fcol = CONF.get('scintilla', 'foldmarginpattern/foregroundcolor')
bcol = CONF.get('scintilla', 'foldmarginpattern/backgroundcolor')
if fcol and bcol:
self.setFoldMarginColors(QColor(fcol), QColor(bcol))
def setup_api(self):
"""Load and prepare Python API"""
if self.lexer() is None:
return
self.api = QsciAPIs(self.lexer())
is_api_ready = False
api_path = CONF.get('editor', 'api')
if not osp.isfile(api_path):
from spyderlib.config import DATA_PATH
api_path = osp.join(DATA_PATH, 'python.api')
if osp.isfile(api_path):
CONF.set('editor', 'api', api_path)
else:
return False
api_size = CONF.get('editor', 'api_size', None)
current_api_size = os.stat(api_path).st_size
if api_size is not None and api_size == current_api_size:
if self.api.isPrepared():
is_api_ready = self.api.loadPrepared()
else:
CONF.set('editor', 'api_size', current_api_size)
if not is_api_ready:
if self.api.load(api_path):
self.api.prepare()
self.connect(self.api, SIGNAL("apiPreparationFinished()"),
self.api.savePrepared)
return is_api_ready
def set_eol_chars_visible(self, state):
"""Show/hide EOL characters"""
self.setEolVisibility(state)
def remove_trailing_spaces(self):
"""Remove trailing spaces"""
text_before = unicode(self.text())
text_after = sourcecode.remove_trailing_spaces(text_before)
if text_before != text_after:
self.setText(text_after)
def fix_indentation(self):
"""Replace tabs by spaces"""
text_before = unicode(self.text())
text_after = sourcecode.fix_indentation(text_before)
if text_before != text_after:
self.setText(text_after)
def set_eol_mode(self, text):
"""
Set QScintilla widget EOL mode based on *text* EOL characters
"""
if isinstance(text, QString):
示例12: Editor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class Editor(QsciScintilla):
ARROW_MARKER_NUM = 8
def __init__(self,parent,text,nfile):
QsciScintilla.__init__(self,parent)
self.parent = parent
self.errorLines = []
self.setText(text)
if(config.encoding() == Encoding.ASCII):
self.setUtf8(False)
#print "ascii set"
else:
self.setUtf8(True)
#print "unicode set"
if(eol == 0):
self.setEolMode(self.EolWindows)
elif(eol == 1):
self.setEolMode(self.EolUnix)
else:
self.setEolMode(self.EolMac)
if(config.whiteSpace()):
self.setWhitespaceVisibility(True)
self.cursorPositionChanged.connect(self.parent.updateLine)
#self.linesChanged.connect(self.changeMarginWidht())
#Indicator
#self.setIndicatorForegroundColor(self.colorStyle.color)
#self.setIndicatorOutlineColor(self.colorStyle.paper)
#Marker
self.markerDefine(QsciScintilla.RightArrow,self.ARROW_MARKER_NUM)
self.markerDefine(Auto.auto_error,0)
self.font = QFont(config.fontName(),config.fontSize())
#self.font.setFixedPitch(True)
self.setFont(self.font)
self.fontmetrics = QFontMetrics(self.font)
self.setMarginsFont(self.font)
# Margin 0 is used for line numbers
self.setMarginSensitivity(0, True)
#self.connect(self,SIGNAL('marginClicked(int, int, Qt::KeyboardModifiers)'),self.on_margin_clicked)
self.setCaretLineVisible(True)
#Code-Complete
self.registerImage(0,Auto.auto_class2)
self.registerImage(1,Auto.auto_method)
self.registerImage(2,Auto.auto_field)
self.registerImage(3,Auto.auto_package)
self.setAutoCompletionThreshold(config.thresh())
self.setAutoCompletionSource(QsciScintilla.AcsAPIs)
self.setBraceMatching(QsciScintilla.SloppyBraceMatch)
self.setBackspaceUnindents(True)
self.setAutoCompletionCaseSensitivity(True)
self.setIndentationsUseTabs(True)
self.setTabIndents(True)
self.setAutoIndent(True)
self.setMargin(config.margin())
self.setIndent(config.indent())
self.setTabWidth(config.tabwidth())
#self.copyAvailable.connect(self.highlightWord)
#self.indicatorClicked.connect(self.indicate)
self.setIndicatorOutlineColor(QColor("#000000"))
self.indicatorDefine(self.INDIC_BOX)
#self.setFolding(QsciScintilla.BoxedTreeFoldStyle)
#self.setAutoCompletionSource(QsciScintilla.AcsAll)
#self.SendScintilla(QsciScintilla.SCI_STYLESETFONT, 1, 'Courier')
#self.setIndentation(5,25)
#self.setSelectionBackgroundColor()
#self.setSelectionForegroundColor()
#self.SendScintilla(QsciScintilla.SCI_MARKERSETBACK,11,QColor(220,220,220))
self.setLanguage(nfile)
self.setEditorStyle() #important must not change this position
self.setApi("emo")
def setApi(self, text):
self.api = QsciAPIs(self.lexer)
self.api.load(ospathjoin(apiDir,text+".api"))
self.api.prepare()
self.lexer.setAPIs(self.api) #Very important do not change line otherwise gg
self.setLexer(self.lexer) #Very important do not change line otherwise gg
editStyle = config.readStyle()
self.setMarginsBackgroundColor(QColor(editStyle["margin"]))
'''This is done cause the margin color is set only when lexer is set
dont know maybe a bug'''
def setEditorStyle(self):
''' Bolldy some problem here the margin bg color is not set when init'ed '''
''' But when i change it in the styles menu it changes sad'''
editStyle = config.readStyle()
self.setCaretLineBackgroundColor(QColor(editStyle["caret"]))
self.setMarginsBackgroundColor(QColor(editStyle["margin"]))
self.setMarkerBackgroundColor(QColor(editStyle["marker"]),self.ARROW_MARKER_NUM)
self.lexer.setColors(editStyle)
def setLanguage(self,nfile):
ext = Format.get(nfile)
if ext == 0:
self.lexer = CPP(self)
elif ext == 1:
self.lexer = CSharp(self)
#.........这里部分代码省略.........
示例13: APIs
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
class APIs(QObject):
"""
Class implementing an API storage entity.
@signal apiPreparationFinished() emitted after the API preparation has finished
@signal apiPreparationCancelled() emitted after the API preparation has been cancelled
@signal apiPreparationStarted() emitted after the API preparation has started
"""
def __init__(self, language, forPreparation = False, parent = None):
"""
Constructor
@param language language of the APIs object (string)
@param forPreparation flag indicating this object is just needed
for a preparation process (boolean)
@param parent reference to the parent object (QObject)
"""
QObject.__init__(self, parent)
self.setObjectName("APIs_%s" % language)
self.__inPreparation = False
self.__language = language
self.__forPreparation = forPreparation
self.__lexer = Lexers.getLexer(self.__language)
self.__apifiles = Preferences.getEditorAPI(self.__language)
self.__apifiles.sort()
if self.__lexer is None:
self.__apis = None
else:
self.__apis = QsciAPIs(self.__lexer)
self.connect(self.__apis, SIGNAL("apiPreparationFinished()"),
self.__apiPreparationFinished)
self.connect(self.__apis, SIGNAL("apiPreparationCancelled()"),
self.__apiPreparationCancelled)
self.connect(self.__apis, SIGNAL("apiPreparationStarted()"),
self.__apiPreparationStarted)
self.__loadAPIs()
def __loadAPIs(self):
"""
Private method to load the APIs.
"""
if self.__apis.isPrepared():
# load a prepared API file
if not self.__forPreparation and Preferences.getEditor("AutoPrepareAPIs"):
self.prepareAPIs()
self.__apis.loadPrepared()
else:
# load the raw files and prepare the API file
if not self.__forPreparation and Preferences.getEditor("AutoPrepareAPIs"):
self.prepareAPIs(ondemand = True)
def reloadAPIs(self):
"""
Public method to reload the API information.
"""
if not self.__forPreparation and Preferences.getEditor("AutoPrepareAPIs"):
self.prepareAPIs()
self.__loadAPIs()
def getQsciAPIs(self):
"""
Public method to get a reference to QsciAPIs object.
@return reference to the QsciAPIs object (QsciAPIs)
"""
if not self.__forPreparation and Preferences.getEditor("AutoPrepareAPIs"):
self.prepareAPIs()
return self.__apis
def __apiPreparationFinished(self):
"""
Private method called to save an API, after it has been prepared.
"""
res = self.__apis.savePrepared()
self.__inPreparation = False
self.emit(SIGNAL('apiPreparationFinished()'))
def __apiPreparationCancelled(self):
"""
Private method called, after the API preparation process has been cancelled.
"""
self.__inPreparation = False
self.emit(SIGNAL('apiPreparationCancelled()'))
def __apiPreparationStarted(self):
"""
Private method called, when the API preparation process started.
"""
self.__inPreparation = True
self.emit(SIGNAL('apiPreparationStarted()'))
def prepareAPIs(self, ondemand = False, rawList = None):
"""
Public method to prepare the APIs if necessary.
@keyparam ondemand flag indicating a requested preparation (boolean)
@keyparam rawList list of raw API files (QStringList)
"""
if self.__apis is None or self.__inPreparation:
#.........这里部分代码省略.........
示例14: QsciEditor
# 需要导入模块: from PyQt4.Qsci import QsciAPIs [as 别名]
# 或者: from PyQt4.Qsci.QsciAPIs import load [as 别名]
#.........这里部分代码省略.........
self.setMarginWidth(0, 14)
self.connect(self,
SIGNAL('marginClicked(int,int,Qt::KeyboardModifiers)'),
self.__margin_clicked)
if code_folding:
# 0: Folding margin
self.setMarginWidth(2, 14)
self.setFolding(QsciScintilla.BoxedFoldStyle)
# Colors
fcol = CONF.get('scintilla', 'margins/foregroundcolor')
bcol = CONF.get('scintilla', 'margins/backgroundcolor')
if fcol:
self.setMarginsForegroundColor(QColor(fcol))
if bcol:
self.setMarginsBackgroundColor(QColor(bcol))
fcol = CONF.get('scintilla', 'foldmarginpattern/foregroundcolor')
bcol = CONF.get('scintilla', 'foldmarginpattern/backgroundcolor')
if fcol and bcol:
self.setFoldMarginColors(QColor(fcol), QColor(bcol))
def setup_api(self):
"""Load and prepare API"""
if self.lexer() is None:
return
self.api = QsciAPIs(self.lexer())
is_api_ready = False
api_path = CONF.get('editor', 'api')
if not os.path.isfile(api_path):
return False
api_stat = CONF.get('editor', 'api_stat', None)
current_api_stat = os.stat(api_path)
if (api_stat is not None) and (api_stat == current_api_stat):
if self.api.isPrepared():
is_api_ready = self.api.loadPrepared()
else:
CONF.set('editor', 'api_stat', current_api_stat)
if not is_api_ready:
if self.api.load(api_path):
self.api.prepare()
self.connect(self.api, SIGNAL("apiPreparationFinished()"),
self.api.savePrepared)
return is_api_ready
def set_whitespace_visible(self, state):
"""Show/hide whitespace"""
if state:
self.setWhitespaceVisibility(QsciScintilla.WsVisible)
else:
self.setWhitespaceVisibility(QsciScintilla.WsInvisible)
def set_eol_chars_visible(self, state):
"""Show/hide EOL characters"""
self.setEolVisibility(state)
def convert_eol_chars(self):
"""Convert EOL characters to current mode"""
self.convertEols(self.eolMode())
def remove_trailing_spaces(self):
"""Remove trailing spaces"""
text_before = unicode(self.text())
text_after = sourcecode.remove_trailing_spaces(text_before)
if text_before != text_after:
self.setText(text_after)
def fix_indentation(self):