Python Панель прокрутки PyQt5 QPlainTextEdit не отображает маркер - PullRequest
0 голосов
/ 27 марта 2020

У меня есть окно QPlainTextEdit в приложении, которое показывает информацию пользователю. Код приложения огромен, поэтому я просто включу соответствующую часть кода:

class ProgressBox(QPlainTextEdit):
    """Represents the progress information box."""
    def __init__(self, win):
        """Message box constructor."""
        super().__init__(win)
        self.setReadOnly(True)
        self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAsNeeded)
        self.setStyleSheet("""
            border: 1px inset grey; background-color: white; padding: 10px;
            """)

    def contextMenuEvent(self, event):
        menu = QMenu(self)
        menu.setStyleSheet("""
            QMenu {
                border: 1px inset grey;
                background-color: #fff;
                color: #000;
                padding: 0;
            }
            QMenu:selected {
                background-color: #ddf;
                color: #000;
            }
        """)
        clear_action = menu.addAction("Clear")
        # copy_all_action = menu.addAction("Copy Selected")

        action = menu.exec_(self.mapToGlobal(event.pos()))
        if action:
            if action == clear_action:
                self.clear_text()

    def add_text(self, text):
        self.setPlainText(self.toPlainText() + text)
        self.verticalScrollBar().setValue(
            self.verticalScrollBar().maximum()
            )
        self.repaint()
        app.processEvents()

    def charCount(self):
        return len(self.toPlainText())

    def clear_text(self):
        self.setPlainText("")
        self.repaint()

«Поле прогресса» запускается с помощью (где win = QMainWindow ()):

win.info_box = ProgressBox(self)

И обновляется с помощью:

win.info_box.add_text("Blah, blah.")

Теперь у меня проблема небольшая, но все же раздражающая. Полоса прокрутки для виджета QPlaintextEdit не отображается правильно (у нее нет «дескриптора»). Смотрите изображение: Horrible scrollbar

Мне бы хотелось, чтобы полоса прокрутки в красном поле выглядела так же, как полоса прокрутки на QTableWidget над ней. Кто-нибудь знает, как я могу это сделать, пожалуйста?

...