def __init__(self, texto="", numMaxLinhas=10, readOnly=False, parent=None):
        super().__init__(texto, numMaxLinhas=numMaxLinhas, readOnly=readOnly, parent=parent)

        self._scrollBar = ScrollBarConsole(numMaxLinhas + 1, 0, orientacao=ScrollBarConsole.VERTICAL)
        self._scrollBar.valorScrollModificado.connect(self._modificarLinhaAtual)
        self.posCursorAlterado.connect(lambda pos: self._alterarScrollBar())
class TextEditScrollConsole(TextEditConsole):
    def __init__(self, texto="", numMaxLinhas=10, readOnly=False, parent=None):
        super().__init__(texto, numMaxLinhas=numMaxLinhas, readOnly=readOnly, parent=parent)

        self._scrollBar = ScrollBarConsole(numMaxLinhas + 1, 0, orientacao=ScrollBarConsole.VERTICAL)
        self._scrollBar.valorScrollModificado.connect(self._modificarLinhaAtual)
        self.posCursorAlterado.connect(lambda pos: self._alterarScrollBar())

    def focusNextChild(self):
        if self._scrollBar.hasFocus():
            return False

        if self.hasFocus():
            self._scrollBar.setFocus()
        else:
            self.setFocus()
        return True

    def focusPreviousChild(self):
        if self.hasFocus():
            return False

        if self._scrollBar.hasFocus():
            self.setFocus()
        else:
            self._scrollBar.setFocus()
        return True

    def indexChildActive(self):
        if self.hasFocus():
            return 0
        elif self._scrollBar.hasFocus():
            return 1
        else:
            return -1

    def _modificarLinhaAtual(self, valor):
        self.setLinhaColuna(int(self.getNumMaxLinhas() / 2) + valor, self.indColunaAtual())

    def _alterarScrollBar(self):
        self._scrollBar.setAteValor(max(0, self.numLinhas() - self.getNumMaxLinhas()))
        self._scrollBar.setValorAtual(self.indLinhaAtual() - int(self.getNumMaxLinhas() / 2))

    def desenhoTela(self, tam):
        s = ""
        scroll = ""
        for i in self._scrollBar.desenhoTelaConsole(tam).split("\n"):
            scroll += "{0}|\n".format(i)
        scroll = "-|\n{0}-|".format(scroll).split("\n")

        tela = super().desenhoTela(tam - 3).split("\n")
        for i in range(len(tela)):
            s += "{0}{1}\n".format(tela[i], scroll[i])

        if s.endswith("\n"):
            s = s[: len(s) - 1]

        return s