PyQt4:如何向中央小部件添加两个对象并显示两个视频

严永Prommajarn

我想显示两个从“ videoFrame”捕获的视频,但现在仅显示self.central_widget.setCurrentWidget(self.videoFrame2)有谁知道如何解决这个问题?

(注意:我使用PyQt4和OpenCV3库)

class MyDialog(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)

        self.left = 700
        self.top = 400
        self.width = 1920
        self.height = 1080

        self.setWindowTitle('Sender')
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.setFixedSize(1920,1080)

        self.videoFrame = ImageWidget()
        self.videoFrame2 = ImageWidget2()

        self.central_widget = QtGui.QStackedWidget()
        self.setCentralWidget(self.central_widget)
        self.central_widget.addWidget(self.videoFrame)
        self.central_widget.setCurrentWidget(self.videoFrame)
        self.central_widget.addWidget(self.videoFrame2)
        self.central_widget.setCurrentWidget(self.videoFrame2)

        self.timer = QtCore.QTimer(self)
        self.timer.timeout.connect(self.updateImage)
        self.timer.start(30)
        self.capture1 = cv2.VideoCapture(0)
        self.capture2 = cv2.VideoCapture(1)

    def updateImage(self):
        _, img = self.capture1.read()
        height, width, bpc = img.shape
        bpl = bpc * width
        image = QtGui.QImage(img.data, width, height, bpl, QtGui.QImage.Format_RGB888)
        pixmap2 = image.scaled(300, 300, QtCore.Qt.KeepAspectRatio)
        self.videoFrame.setImage(pixmap2)

        _, img0 = self.capture2.read()
        height, width, bpc = img0.shape
        bpl = bpc * width
        image2 = QtGui.QImage(img0.data, width, height, bpl, QtGui.QImage.Format_RGB888)
        pixmap2 = image2.scaled(300, 300, QtCore.Qt.KeepAspectRatio)
        self.videoFrame2.setImage(pixmap2)

class ImageWidget(QtGui.QWidget):
    def __init__(self,parent=None):
        super(ImageWidget,self).__init__(parent)
        self.image=None

    def setImage(self,image):
        self.image=image
        sz=image.size()
        self.setMinimumSize(sz)
        self.update()

    def paintEvent(self,event):
        qp=QtGui.QPainter()
        qp.begin(self)
        if self.image:
            qp.drawImage(QtCore.QPoint(150,150 ),self.image)
        qp.end()

    # enter code here

class ImageWidget2(QtGui.QWidget):
    def __init__(self,parent=None):
        super(ImageWidget2,self).__init__(parent)
        self.image=None

    def setImage(self,image):
        self.image=image
        sz=image.size()
        self.setMinimumSize(sz)
        self.update()

    def paintEvent(self,event):
        qp=QtGui.QPainter()
        qp.begin(self)
        if self.image:
            qp.drawImage(QtCore.QPoint(450,450 ),self.image)
        qp.end()
ekhumoro

AQStackedWidget将使小部件彼此重叠。如果您希望窗口小部件并排显示,请使用QHBoxLayout

class MyDialog(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MyDialog, self).__init__(parent)
        ...

        # self.central_widget = QtGui.QStackedWidget()
        # self.setCentralWidget(self.central_widget)
        # self.central_widget.addWidget(self.videoFrame)
        # self.central_widget.setCurrentWidget(self.videoFrame)
        # self.central_widget.addWidget(self.videoFrame2)
        # self.central_widget.setCurrentWidget(self.videoFrame2)

        widget = QtGui.QWidget(self)
        layout = QtGui.QHBoxLayout(widget)
        layout.addWidget(self.videoFrame)
        layout.addWidget(self.videoFrame2)
        self.setCentralWidget(widget)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jupyter Notebook-链接两个滑块小部件,以向值添加偏移量

来自分类Dev

如何在两个 PyQt5 MainWindow 小部件之间切换

来自分类Dev

如何连接两个QTableview小部件?

来自分类Dev

如何同时但异步移动两个tkinter小部件?

来自分类Dev

如何使两个小部件碰撞更紧密

来自分类Dev

添加两个对象?

来自分类Dev

“如何在一行小部件中创建两个文本小部件”

来自分类Dev

如何在两个固定的小部件之间制作可滚动的小部件

来自分类Dev

如何在行小部件中两个文本小部件之间的文本小部件中添加省略号

来自分类Dev

Pyqt5在两个小部件之间画一条线

来自分类Dev

如何在PlyrJS中添加两个视频

来自分类Dev

向UILabel添加两个阴影

来自分类Dev

向 QComboBox 添加两个变量

来自分类Dev

如何向安装程序添加两个许可协议?

来自分类Dev

如何向元素添加两个类

来自分类Dev

使整个屏幕具有两个动态小部件

来自分类Dev

tkinter将两个或多个小部件居中

来自分类Dev

两个相同的小部件使用jQuery

来自分类Dev

Flutter:从两个有状态小部件传递数据

来自分类Dev

如何在tkinter中使3列网格中显示的两个小部件之间的间距相等?

来自分类Dev

如何使用一个滚动条滚动两个平行的文本小部件?

来自分类Dev

小部件在tkinter中显示两个窗格的列表框

来自分类Dev

Qt / C ++-在关闭一个小部件时关闭两个小部件

来自分类Dev

Java:添加两个对象

来自分类Dev

在导轨中添加两个对象

来自分类Dev

如何使wxpython窗口小部件跨越两个单元而又不将其他窗口小部件推开?

来自分类Dev

我如何使用居中和列小部件中的align小部件在底部有两个按钮?

来自分类Dev

如何添加两个datetime.datetime对象?

来自分类Dev

如何确保小部件上并排放置的两个标签之一获得focusInEvent?

Related 相关文章

  1. 1

    Jupyter Notebook-链接两个滑块小部件,以向值添加偏移量

  2. 2

    如何在两个 PyQt5 MainWindow 小部件之间切换

  3. 3

    如何连接两个QTableview小部件?

  4. 4

    如何同时但异步移动两个tkinter小部件?

  5. 5

    如何使两个小部件碰撞更紧密

  6. 6

    添加两个对象?

  7. 7

    “如何在一行小部件中创建两个文本小部件”

  8. 8

    如何在两个固定的小部件之间制作可滚动的小部件

  9. 9

    如何在行小部件中两个文本小部件之间的文本小部件中添加省略号

  10. 10

    Pyqt5在两个小部件之间画一条线

  11. 11

    如何在PlyrJS中添加两个视频

  12. 12

    向UILabel添加两个阴影

  13. 13

    向 QComboBox 添加两个变量

  14. 14

    如何向安装程序添加两个许可协议?

  15. 15

    如何向元素添加两个类

  16. 16

    使整个屏幕具有两个动态小部件

  17. 17

    tkinter将两个或多个小部件居中

  18. 18

    两个相同的小部件使用jQuery

  19. 19

    Flutter:从两个有状态小部件传递数据

  20. 20

    如何在tkinter中使3列网格中显示的两个小部件之间的间距相等?

  21. 21

    如何使用一个滚动条滚动两个平行的文本小部件?

  22. 22

    小部件在tkinter中显示两个窗格的列表框

  23. 23

    Qt / C ++-在关闭一个小部件时关闭两个小部件

  24. 24

    Java:添加两个对象

  25. 25

    在导轨中添加两个对象

  26. 26

    如何使wxpython窗口小部件跨越两个单元而又不将其他窗口小部件推开?

  27. 27

    我如何使用居中和列小部件中的align小部件在底部有两个按钮?

  28. 28

    如何添加两个datetime.datetime对象?

  29. 29

    如何确保小部件上并排放置的两个标签之一获得focusInEvent?

热门标签

归档