Я пытаюсь создать цвета для своего текста и сделать его самодостаточным.
Я обнаружил, что QScintilla хорош в этом, за исключением того, что если я использую специальный символ, он не работает.
Пример автозаполнения:
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.Qsci import *
class MyLexer(QsciLexerCustom):
def __init__(self, parent):
super(MyLexer, self).__init__(parent)
pass
class CustomMainWindow(QMainWindow):
def __init__(self):
super(CustomMainWindow, self).__init__()
self.setGeometry(300, 300, 800, 400)
self.setWindowTitle("QScintilla Test")
self.__frm = QFrame(self)
self.__frm.setStyleSheet("QWidget { background-color: #ffeaeaea }")
self.__lyt = QVBoxLayout()
self.__frm.setLayout(self.__lyt)
self.setCentralWidget(self.__frm)
self.__myFont = QFont()
self.__myFont.setPointSize(14)
self.__editor = QsciScintilla()
self.__editor.setUtf8(True)
self.__editor.setFont(self.__myFont)
self.__editor.setMarginType(0,QsciScintilla.NumberMargin)
self.__editor.setMarginWidth(0,"000")
self.__lexer = MyLexer(self.__editor)
api = QsciAPIs(self.__lexer)
api.add(r'\\begin')
api.add('end')
api.prepare()
self.__editor.setLexer(self.__lexer)
self.__editor.setAutoCompletionThreshold(1)
self.__editor.setAutoCompletionSource(QsciScintilla.AcsAPIs)
self.__lyt.addWidget(self.__editor)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
QApplication.setStyle(QStyleFactory.create('Fusion'))
myGUI = CustomMainWindow()
sys.exit(app.exec_())
\begin
Не работает.
У вас есть решение или другая библиотека? Это для латексного автозаполнения, поэтому я собираюсь получить много «\». Я нашел это решение, но не понимаю, как записать его в python. https://byman.it/site/index.php?option=com_content&view=article&id=323: scintill anet -autocomplete-for-special-char & catid = 70 & Itemid = 154
И это решение, которое я также хотел бы реализовать, но не понимаю: https://github.com/jacobslusser/ScintillaNET/wiki/Character-Autocompletion#finishing -сенсорный
Редактировать
У меня такая же проблема с пробелами. Он не показывает, что после пробела.
If I love you.
, он будет отображать только «Если».