pyqt5 TabWidget
来源:互联网 发布:钢铁力量天箭数据 编辑:程序博客网 时间:2024/06/05 18:39
希望在一个图片窗口里利用tabwidget显示多幅图片,或者同时可显示图片和视频
图片显示通过:QGraphicsView, QGraphicsScene,QGraphicsPixmapItem
视频播放通过QMediaplayer
from PyQt5 import QtWidgets,QtCorefrom PyQt5.QtWidgets import QApplication,QMainWindow,QGridLayout,QTabWidget,QPushButton,\QVBoxLayout,QHBoxLayout,QWidget,QGraphicsView,QGraphicsScene,\QGraphicsPixmapItem,QTabBarfrom PyQt5.QtMultimediaWidgets import QVideoWidgetfrom PyQt5.QtMultimedia import QMediaMetaData, QMediaPlayer,QMediaContentfrom PyQt5.QtGui import QPixmapfrom PyQt5 import QtGuifrom PyQt5.QtCore import QUrlclass MainWindow(QMainWindow):"""docstring for MainWindow"""def __init__(self):super(MainWindow, self).__init__()self.setupUi(self)def setupUi(self,MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(800,600)self.centralwidget = QtWidgets.QWidget(MainWindow)gridlayout = QGridLayout(self.centralwidget)hlayout = QHBoxLayout()self.button1 = QPushButton(' add image ')self.button3 = QPushButton('add video')self.button2 = QPushButton('remove')self.playbutton = QPushButton('play')self.stopbutton = QPushButton('stop')hlayout.addWidget(self.button1)hlayout.addWidget(self.button3)hlayout.addWidget(self.button2)hlayout.addWidget(self.playbutton)hlayout.addWidget(self.stopbutton)self.scene = QGraphicsScene()self.item = QGraphicsPixmapItem()# imgpath = 'C:/Users/liesmars/Desktop/1.jpg'self.item.setPixmap(QtGui.QPixmap(imgpath))self.scene.addItem(self.item)self.graphicsview = QGraphicsView()self.graphicsview.setScene(self.scene)self.tabwidget = QTabWidget()vlayout = QVBoxLayout()vlayout.addLayout(hlayout)vlayout.addWidget(self.tabwidget)MainWindow.setCentralWidget(self.centralwidget)gridlayout.addLayout(vlayout,0,0,1,1)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):self.button1.clicked.connect(self.addTab)self.button2.clicked.connect(self.closeTab)self.button3.clicked.connect(self.addVideo)self.playbutton.clicked.connect(self.palyMedia)self.stopbutton.clicked.connect(self.stopMedia)passdef addTab(self,signal):scene = QGraphicsScene()item = QGraphicsPixmapItem()# imgpath = 'C:/Users/liesmars/Desktop/1.jpg'item.setPixmap(QtGui.QPixmap(imgpath))scene.addItem(item)graphicsview = QGraphicsView()graphicsview.setScene(scene)self.tabwidget.addTab(graphicsview,"tab2")self.tabwidget.setCurrentWidget(graphicsview)def addVideo(self,signal):videowidget = QVideoWidget()self.videoplayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)self.videoplayer.setVideoOutput(videowidget)# videopath = 'C:/Users/liesmars/Desktop/1.mp4'self.videoplayer.setMedia(QMediaContent(QUrl.fromLocalFile(videopath)))self.tabwidget.addTab(videowidget,"tab4")self.tabwidget.setCurrentWidget(videowidget)def closeTab(self):tabID = self.tabwidget.currentIndex()self.tabwidget.removeTab(tabID)passdef palyMedia(self,signal):self.videoplayer.play()passdef stopMedia(self,signal):self.videoplayer.pause()passif __name__ == '__main__':import sysapp = QApplication(sys.argv)mainWin = MainWindow()# app.setActiveWindow(mainWin)mainWin.show()sys.exit(app.exec_())
阅读全文
1 0
- pyqt5 TabWidget
- TabWidget
- TabWidget
- PyQt5
- pyqt5
- Tabwidget- TabWidget选择标签
- TabWidget 应用
- TabHost,TabWidget
- Android TabWidget
- Android TabWidget
- 自定义TabWidget
- 简单 TabWidget
- tabwidget.h
- tabwidget.cpp
- tabwidget用法
- NullPointException-TabWidget.focusCurrentTab(TabWidget.java:401)
- PyQt5 状态栏
- python+pyqt5
- Servlet3.0中Servlet的使用
- SpringIOC底层原理
- python装饰器简单使用
- IPC\DVS\DVR与NVR之间的区别
- 简你对UIView 和CALayer、UIWindow的理解
- pyqt5 TabWidget
- EtherCAT
- 盒子模型
- 日本の教育
- 面试题1
- 面向对象原则的要点知识与设计模式
- Javascript模块化编程(一):模块的写法
- Tomcat 系统架构与设计模式,第 1 部分 工作原理
- Servlet系列之第一种创建方式(一)实现Servlet类