Найти - Пользователи
Полная версия: как встроить редактор python в свою программу
Начало » GUI » как встроить редактор python в свою программу
1
villager
пишу что-то типа универсальной оболочки для БД с использованием PyQt

в БД хранится описание таблиц, полей
и куски кода для обработки событий (например, обработка нажатия на кнопку)
на ходу собирается форма и т.д., все работает …

в форму редактирования встроил простейший редактор с подсветкой на базе QPlainTextEdit
хочу добавить кнопку для вызова полноэкранного редактора, с последующим возможным сохранением исправленного текста в БД
для разработки использую Eric4

ткните в пример, пожалуйста, как себе в проект затянуть какой нибудь редактор, желательно на Qt, чтобы потом все работало из .EXE без инсталляции

зы: если кого интересует тема “что-то типа универсальной оболочки для БД”, дайте знать …
pasaranax
посмотри в сторону QScintilla
villager
Спасибо,это оно, но как с ним подружится …
нигде не нашел
villager
Все просто оказалось
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_())
villager
небольшие грабли, может кому пригодится:
редактирую код, сохраняю в БД - пробую выполнить - ошибка…
не сразу врубился, что дело в сохранении текста

поставил:
self.editor.setEolMode(Qsci.QsciScintilla.EolUnix)
и все заработало, как надо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB