예제 #1
0
    def __init__(self, parent):
        super(Edith, self).__init__()

        self.parent = parent
        self._defaul_font_size = 12
        self._zoom = 1

        self.undostack = UndoStack()

        #self.setStyleSheet('font-family: \'Calibri\'; background-color: #FFFFFF')
        self.setWordWrapMode(QtGui.QTextOption.WrapAnywhere)

        self._test_str = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghim'
        self.setStyleSheet(
            'font-size: %.3fpt;font-family: \'Calibri\'; background-color: #FFFFFF'
            % (self._zoom * 12))

        metric = QtGui.QFontMetrics(QtGui.QFont('Calibri', 12))
        self._text_width = metric.boundingRect(self._test_str).width()
        self.setFixedWidth(1.1 * self._text_width)

        self.document().setDocumentMargin(0.05 * self._text_width)

        super().setFixedHeight(self._text_width / 2)

        self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.setFrameShape(QtWidgets.QFrame.NoFrame)

        self.bridge = Bridge()

        # setup frame
        self.setFrameShape(QtWidgets.QFrame.Box)
        self.setFrameShadow(QtWidgets.QFrame.Plain)
        self.setLineWidth(1)

        # eventlistening
        self.document().contentsChange.connect(self.update_parser)
        self.cursorPositionChanged.connect(self.cursor_position_changed)