@nvlveu

Как расположить QScrollBar на другом виджете?

Здравствуйте. Мне нужно расположить виджет QScrollBar на другом виджете, но при этом чтобы полоса прокрутки была привязана к другому виджету.
В случае с QTextEdit QScrollBar помещается в текстовом поле при использовании .setWidget, чего мне не хотелось бы.
Возможно ли поместить QScrollBar на один виджет(например QLabel), но привязать его к другому(например QTextEdit) и как это реализовать?
  • Вопрос задан
  • 320 просмотров
Решения вопроса 1
@bbkmzzzz
Создаете виджет QScrollBar, а потом QTextEdit.setVerticalScrollBar(свой скролл) или setHorizontalScrollBar

spoiler

import sys

from PySide2.QtWidgets import QApplication, QMainWindow, QWidget, QHBoxLayout, QTextEdit, QScrollBar


class Main(QMainWindow):
    def __init__(self):
        super(Main, self).__init__()
        centralWidget = QWidget(self)
        self.setCentralWidget(centralWidget)

        # добавляем компонощик
        self.h_grid = QHBoxLayout(centralWidget)

        self.customScroll = QScrollBar()

        # добаляем QtextEdit
        self.textEdit = QTextEdit()

        # задаем для него скролл
        self.textEdit.setHorizontalScrollBar(self.customScroll)

        # убираем полосу, отведенную под скролл
        self.textEdit.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)

        self.h_grid.addWidget(self.textEdit)
        self.h_grid.addWidget(self.customScroll)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Main()
    ex.show()
    sys.exit(app.exec_())

5fc893430cfd4584110093.jpeg
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы