Форум сайта python.su
пишу что-то типа универсальной оболочки для БД с использованием PyQt
в БД хранится описание таблиц, полей
и куски кода для обработки событий (например, обработка нажатия на кнопку)
на ходу собирается форма и т.д., все работает …
в форму редактирования встроил простейший редактор с подсветкой на базе QPlainTextEdit
хочу добавить кнопку для вызова полноэкранного редактора, с последующим возможным сохранением исправленного текста в БД
для разработки использую Eric4
ткните в пример, пожалуйста, как себе в проект затянуть какой нибудь редактор, желательно на Qt, чтобы потом все работало из .EXE без инсталляции
зы: если кого интересует тема “что-то типа универсальной оболочки для БД”, дайте знать …
Офлайн
посмотри в сторону QScintilla
Офлайн
Спасибо,это оно, но как с ним подружится …
нигде не нашел
Офлайн
Все просто оказалось
import sys
from PyQt4 import QtCore, QtGui, Qsci
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(self)
self.setWindowTitle('Custom Lexer Example')
self.setGeometry(QtCore.QRect(50,200,400,400))
self.editor = Qsci.QsciScintilla(self)
self.editor.setUtf8(True)
self.editor.setFolding(Qsci.QsciScintilla.BoxedTreeFoldStyle)
self.setCentralWidget(self.editor)
self.lexer = Qsci.QsciLexerPython()
self.editor.setLexer(self.lexer)
self.editor.setText('\n# sample source\n\nfoo = 1\nbar = 2\class foo():\n\tpass')
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
app.connect(app, QtCore.SIGNAL('lastWindowClosed()'),
QtCore.SLOT('quit()'))
win = MainWindow()
win.show()
sys.exit(app.exec_())
Офлайн
небольшие грабли, может кому пригодится:
редактирую код, сохраняю в БД - пробую выполнить - ошибка…
не сразу врубился, что дело в сохранении текста
поставил:
self.editor.setEolMode(Qsci.QsciScintilla.EolUnix)
и все заработало, как надо
Офлайн