Горизонтальная прокрутка при сдвиге в PYQTPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Горизонтальная прокрутка при сдвиге в PYQT

Сообщение Anonymous »

У меня есть приложение PYQT6, в котором у меня есть несколько QTextEdits, которые содержат текст, который иногда переполняет видимый диапазон линий. Используя комбинацию Shift+Wheel , моя цель состояла в том, чтобы затем прокрутить ее вертикально. Для разъяснения: Кроме того, потому что я также хотел иметь возможность прокручивать только, когда я парят над ним, как нормальное поведение вертикальных работ прокрутки, я добавил цикл в WING, чтобы найти фактический QTEXTEDIT в возвращенном анонимном виджете (-Reference) из QAPPLICATION.Widgetatat . Я подумал, что это будет лучшим подходом вместо того, чтобы генерировать список всех ссылок qtextedit и сравнить его с возвращенной ссылкой.

Код: Выделить всё

    def eventFilter(self, obj, event):
if isinstance(event, QWheelEvent) and QApplication.keyboardModifiers() == Qt.KeyboardModifier.ShiftModifier:
widget_under_mouse = QApplication.widgetAt(event.globalPosition().toPoint())
while widget_under_mouse is not None:
if isinstance(widget_under_mouse, QTextEdit): break
widget_under_mouse = widget_under_mouse.parent()  # Move up in the hierarchy

if isinstance(widget_under_mouse, QTextEdit):
if h_scroll_bar := widget_under_mouse.horizontalScrollBar():
new_value = h_scroll_bar.value() - event.angleDelta().y()
h_scroll_bar.setValue(new_value)
return True
return super().eventFilter(obj, event)
< /code>
Проблема заключается в том, что этот фильтр активируется только тогда, когда я достигаю дна или начала текста в qtextedit. Я попытался установить его в разных местах:

at app = qapplication (...) < /code> Определение:

app.installEventFilter(ScrollFilter())  # ScrollFilter(QObject) beeing a class build around the filter < /code>

или внутри моего Mainwindow:

 self.installEventFilter(self)< /code>

или с фактическим qtextedit:

self.my_text_edit.installEventFilter(self)

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

Подробнее здесь: https://stackoverflow.com/questions/797 ... ft-in-pyqt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу избавиться от диагонального наклона при сдвиге plt.pcolormesh() при смещении позиций строк?
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Горизонтальная и вертикальная прокрутка HTML-таблицы при фиксированном левом столбце
    Anonymous » » в форуме CSS
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Горизонтальная прокрутка при переполнении таблицы
    Anonymous » » в форуме CSS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как спрятать курсор и показать его на сдвиге+побега в Unity 3D?
    Anonymous » » в форуме C#
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как спрятать курсор и показать его на сдвиге+побега?
    Anonymous » » в форуме C#
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»