Конфликт между Qwebengineview и Qvideowidget pyqt5? [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Конфликт между Qwebengineview и Qvideowidget pyqt5? [закрыто]

Сообщение Anonymous »

Я пишу свою IDE, и, согласно своему плану, должно быть возможно работать напрямую с переполнением стека (в будущем) и открытыми файлами различных форматов (включая видео). Вот код трех сценариев, в которых происходит все работы:
main.py:
import sys
import os
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QAction, QStackedWidget, QTabWidget
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtMultimediaWidgets import QVideoWidget

class VideoTab(QWidget):
def __init__(self, name, folder):
super().__init__()
self.path = os.path.join(folder, name)
self.vLayout = QVBoxLayout(self)
self.video_widget = QVideoWidget()

self.vLayout.addWidget(self.video_widget, stretch=1)
self.player = QMediaPlayer()
self.player.setVolume(100)
self.player.setVideoOutput(self.video_widget)
self.player.setMedia(QMediaContent(QUrl.fromLocalFile(self.path)))
self.player.play()

self.video_widget.show()

class PythonIDE(QMainWindow):
def __init__(self):
super().__init__()
self.so_engine = QWebEngineView()
self.so_engine.setUrl(QUrl("https://stackoverflow.com"))
self.initUI()

def initUI(self):

self.setWindowTitle("SIDE")

self.mainWin = QStackedWidget()

self.editor_underwidget = QTabWidget()
self.editor_underwidget.setMovable(True)
win = VideoTab("video.mp4", "d:/SIDE_TEST") # Here is your test file
self.editor_underwidget.addTab(win, "test")

self.editor_container = QWidget()
self.ed_layout = QVBoxLayout()
self.ed_layout.addWidget(self.editor_underwidget)
self.editor_container.setLayout(self.ed_layout)

self.so_container = QWidget()
self.so_layout = QVBoxLayout()
self.so_layout.addWidget(self.so_engine)
self.so_container.setLayout(self.so_layout)

self.mainWin.addWidget(self.editor_container)
self.mainWin.addWidget(self.so_container)
self.setCentralWidget(self.mainWin)
self.mainWin.setCurrentWidget(self.editor_container)

self.create_menu()

def create_menu(self):
self.menubar = self.menuBar()

self.tools_menu = self.menubar.addMenu("Tools")

self.editor_menu = QAction("Editor", self)
self.editor_menu.triggered.connect(self.switch_to_editor)
self.tools_menu.addAction(self.editor_menu)

self.questions_menu = QAction('StackOverflow', self)
self.questions_menu.triggered.connect(self.switch_to_questions)
self.tools_menu.addAction(self.questions_menu)

def switch_to_editor(self):
self.mainWin.setCurrentWidget(self.editor_container)

def switch_to_questions(self):
self.mainWin.setCurrentWidget(self.so_container)

if __name__ == "__main__":
app = QApplication(sys.argv)
ide = PythonIDE()
ide.showMaximized()
sys.exit(app.exec_())
< /code>
Но когда я открываю видеотуру, а затем перейду на вкладку переполнения стека, приложение начинает дико заморозить и сбой - виджеты подходят друг другу, работа замедляется, FPS падает. Однако эти проблемы не исчезают даже после закрытия видео, только после перезапуска приложения. (Кроме того, кстати, существует очень неприятная визуальная ошибка, которая появляется, даже когда QWebengineView не настроен - это список вкладок сверху Qtabwidget, при создании видеоизой Веб -сайт. Я перешел на Pyqt6, и все сработало. Вопрос можно считать решением.

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конфликт между Qwebengineview и Qvideowidget pyqt5? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Конфликт между Qwebengineview и Qvideowidget pyqt5? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • PyQt5: Как загрузить значок для QWebEngineView?
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Скопируйте выделенный текст из PDF в PyQt5 QWebEngineView
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • QVideoWidget() не работает с безрамочным окном и полупрозрачным фоном
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous

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