【发布时间】:2018-10-09 03:24:46
【问题描述】:
我想让一个表格小部件与一个视频小部件和一个网络视图小部件并排放置。垂直堆叠的视频和 webview 小部件。 我尝试首先将表格小部件和视频小部件并排放置,但视频小部件被表格小部件隐藏。我能够听到音频,因此视频似乎正在运行,但似乎没有显示视频部分。 代码有什么问题? 粘贴示例代码。我还没有添加网络小部件。
import sys
from PyQt5 import QtGui, QtCore
from PyQt5.QtCore import QDir, Qt, QUrl
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtWidgets import (QMainWindow, QApplication, QWidget, QTableWidget,QVBoxLayout,
QTableWidgetItem, QLabel, QHBoxLayout,QGridLayout)
class Window(QWidget):
def __init__(self,):
super().__init__()
table1 = QTableWidget()
table1.setRowCount(2)
table1.setColumnCount(2)
table1.setItem(0,0, QTableWidgetItem("Cell (1,1)"))
table1.setItem(0,1, QTableWidgetItem("Cell (1,2)"))
table1.setItem(1,0, QTableWidgetItem("Cell (2,1)"))
table1.setItem(1,1, QTableWidgetItem("Cell (2,2)"))
self.VideoWidget = QVideoWidget()
self.player = QMediaPlayer(None, QMediaPlayer.VideoSurface)
self.player.setMedia(QMediaContent(QUrl.fromLocalFile("test.mp4")))
self.player.play()
self.player.setVideoOutput(self.VideoWidget)
self.layout = QHBoxLayout()
self.layout.addWidget(table1)
self.layout.addWidget(self.VideoWidget)
self.setLayout(self.layout)
self.move(0,0)
self.resize(320, 240)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = Window()
app.exec_()
【问题讨论】:
-
如果我使用绝对路径(并设置合理的窗口大小),一切正常。
-
我将视频保存在与脚本相同的文件夹中。当我听到音频时,我确认正在播放视频。此外,如果我禁用表格小部件,那么我会看到正在播放的视频。我还尝试将 self.resize(320, 240) 设置为 640x480,但它不起作用
标签: python-3.x pyqt5