首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在PyQt5中创建不重叠的QVideoPlayer和PlotWidget

,可以通过使用QStackedWidget来实现。QStackedWidget是一个容器小部件,它可以在同一位置显示多个子部件,但只有一个子部件是可见的。

首先,需要导入PyQt5库和相关模块:

代码语言:txt
复制
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QStackedWidget
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from pyqtgraph import PlotWidget

然后,创建一个主窗口类,并在其中添加一个QStackedWidget作为主窗口的中心部件:

代码语言:txt
复制
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Video Player and Plot Widget")
        
        self.stacked_widget = QStackedWidget()
        self.setCentralWidget(self.stacked_widget)

接下来,创建一个QWidget子类用于显示视频播放器,并将其添加到QStackedWidget中:

代码语言:txt
复制
class VideoPlayerWidget(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QVBoxLayout()
        self.setLayout(layout)
        
        video_player = QVideoPlayer()
        layout.addWidget(video_player)
        
        self.video_player = video_player

然后,创建另一个QWidget子类用于显示PlotWidget,并将其添加到QStackedWidget中:

代码语言:txt
复制
class PlotWidgetWidget(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QVBoxLayout()
        self.setLayout(layout)
        
        plot_widget = PlotWidget()
        layout.addWidget(plot_widget)
        
        self.plot_widget = plot_widget

在主窗口类的初始化方法中,创建VideoPlayerWidget和PlotWidgetWidget实例,并将它们添加到QStackedWidget中:

代码语言:txt
复制
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Video Player and Plot Widget")
        
        self.stacked_widget = QStackedWidget()
        self.setCentralWidget(self.stacked_widget)
        
        video_player_widget = VideoPlayerWidget()
        self.stacked_widget.addWidget(video_player_widget)
        
        plot_widget_widget = PlotWidgetWidget()
        self.stacked_widget.addWidget(plot_widget_widget)

最后,可以通过切换QStackedWidget的当前索引来显示不同的子部件。例如,可以在主窗口类中添加一个方法来切换到视频播放器界面:

代码语言:txt
复制
class MainWindow(QMainWindow):
    # ...
    
    def show_video_player(self):
        self.stacked_widget.setCurrentIndex(0)

类似地,可以添加一个方法来切换到PlotWidget界面:

代码语言:txt
复制
class MainWindow(QMainWindow):
    # ...
    
    def show_plot_widget(self):
        self.stacked_widget.setCurrentIndex(1)

完整的代码示例:

代码语言:txt
复制
from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QVBoxLayout, QStackedWidget
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from pyqtgraph import PlotWidget

class VideoPlayerWidget(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QVBoxLayout()
        self.setLayout(layout)
        
        video_player = QMediaPlayer()
        layout.addWidget(video_player)
        
        self.video_player = video_player

class PlotWidgetWidget(QWidget):
    def __init__(self):
        super().__init__()
        
        layout = QVBoxLayout()
        self.setLayout(layout)
        
        plot_widget = PlotWidget()
        layout.addWidget(plot_widget)
        
        self.plot_widget = plot_widget

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Video Player and Plot Widget")
        
        self.stacked_widget = QStackedWidget()
        self.setCentralWidget(self.stacked_widget)
        
        video_player_widget = VideoPlayerWidget()
        self.stacked_widget.addWidget(video_player_widget)
        
        plot_widget_widget = PlotWidgetWidget()
        self.stacked_widget.addWidget(plot_widget_widget)
        
    def show_video_player(self):
        self.stacked_widget.setCurrentIndex(0)
        
    def show_plot_widget(self):
        self.stacked_widget.setCurrentIndex(1)

if __name__ == "__main__":
    app = QApplication([])
    window = MainWindow()
    window.show()
    app.exec_()

这样,就可以在PyQt5中创建不重叠的QVideoPlayer和PlotWidget,并通过QStackedWidget在同一位置显示它们。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 如何实时绘制数据

实例 1 绘制图写法比较少见,通常应用是通过 pyqtgraph.PlotWidget.plot() 来实现在控件作图再添加到 GUI 控件,所以我们将采用 PlotWidget 写法来实现模式...# PyQt5 程序固定写法 sys.exit(app.exec()) 我们自己写代码重新设置了下窗口尺寸位置,数据还是按照实例写法来完成。...# PyQt5 程序固定写法 sys.exit(app.exec()) 我们自己写代码重新设置了下窗口尺寸位置,数据还是按照实例写法来完成。...小结 今天先只简单整理这两个较简单实时绘制模式,给定代码数据是用随机正态分布数据,我们结合着模式 1 2 实例代码来分析其原理算法来仿写了常用版本代码。...掌握模式 1 模式 2 用法后,我们便可以对更多数据来进行动态展示,比如 CPU 占用率、股票实时价格等,配合着 PyQt5 GUI 图形界面,那么完全可以用 Python 来写出看着高大上数据可视化界面了

3.4K21

如何实时可视化渲染你数据?

之前介绍PyQtGraph文章,我们都是一次性获取数据并将其绘制为图形。然而在很多场景,我们都需要对实时数据进行图形化展示。...二、使用PyQt5创建一个图形界面 有了数据来源之后,我们来创建一个图形界面,这个图形界面由一个Widget包裹着一个Plotwidget,图形界面的核心就是一个ptqtgraph图形部件。...三、PyQtGraph实时显示CPU数据 创建好了基础图形界面之后,我们就可以实时获取电脑CPU使用率然后将其绘制图形界面上了。...之前文章,我们知道pyqtgraph绘图数据主要是通过setData()这个方法来转化为图形。...由于所有的操作都是主线程上进行,会导致图形界面有些许的卡顿,更加理想做法是创建一个子线程来生成绘制图形,在此就不作额外演示了,大家可以自己尝试一下。

2.4K50
  • Midjourney创建一致面部表情背景思路

    ‍静电说:一致性设计对于制作连续性图片,比如绘本,漫画等等非常有效。保持面部是“一个人”情况下,改变表情,甚至为主角换衣服,那就更有用了。今天为大家分享一篇文章,详细讲解了操作思路。...主要思路:(1) 创建一个角色,(2) 自己创建衣服,(3) 使用 1 2 图像提示,并在组合提示添加“穿着[衣服]”。...我认为要开发重复使用角色,人们必须对一个角色有不同视角——肖像、腰部肖像、全身肖像等。...我们得到了四张图像: 我们课程之前讲过,你可以使用木偶法给角色命名,因为Midjourney日志也提到过: 人工智能不会实时学习以响应用户操作。...该技术不会按照您期望方式工作。不同结果字符任何相似之处纯粹是因为您在提示中使用了相同名称。这不是因为种子或收视率。过去提示不会影响将来提示。

    46420

    90后跌成了“韭零后”?Python 绘制交互式股票K线图

    但是今天我们研究K线,看K线那是股中人士活儿。 对于刚刚解套我来说,还是画画K线比较自在。...今天,我们将使用Python,PyQt5借助PyQtGtaph绘制一个带有十字光标的股票历史走势K线图。 一、创建图形界面窗口骨架 首先,我们来创建一个基础图形界面。...接下来,我们创建一个K线图图形绘制类,通过PyQtPyQtGraph绘图组件绘制K线图。...得到K线图之后,我们将其添加到之前实例化好PlotWidget()部件self.k_plt,并对图形添加设置其他属性,其代码如下所示: def plot_k_line(self,code=...五、最后 这样我们就通过PyQt5PyQtGraph实现了股票历史数据查询K线图绘制。 大家有好实现方法或是其他想法,欢迎留言讨论 ?分享、点赞、在看,给个三连击呗!?

    2.7K42

    ODBC连接数据库提示:指定 DSN ,驱动程序应用程序之间体系结构匹配

    问题现象 业务程序通过ODBC链接RDSforMysql数据库,程序启动后运行提示:[Microsoft][ODBC 驱动程序管理器] 指定 DSN ,驱动程序应用程序之间体系结构匹配。...排查过程 1、通过DAS登录RDSRDS本身日志,确认RDS本身正常,并通过ODBC数据源连接RDS进行test结果正常,来定界业务异常RDS数据库无关,问题出现在ASP程序-》ODBC数据源(Mysql...驱动)这一段,也验证了‘驱动程序应用程序之间体系结构匹配。’...3、参考 https://blog.csdn.net/buptlihang/article/details/80275641 ,分别下载、安装mysql ODBC32位64位驱动程序,然后再卸载了64...根因分析 前端业务通过ASP+ODBC调用后台数据库,但是安装ODBC版本为64位,而ASP为32位,所以匹配。

    7.2K10

    PyQt5使用图元实现高效绘制场景

    Qt图形视图框架介绍 Qt图形视图框架(Qt Graphics View Framework)支持开发快速高效2D矢量图形场景。场景可以包含数百万个对象,每个对象都有自己功能行为。...通过使用 PyQt 图形视图,您可以 Python 访问这个高性能图形层。...无论您是将矢量图形视图集成到现有的 PyQt 应用程序,还是只是想要一个强大 Python 矢量图形界面,Qt 图形视图都是您正在寻找。...其中QGraphicsScene可以看成是Model-View架构Model部分;QGraphicsView可以看成是Model-View架构View部分;每个Scene绑定到多个View、QGraphicsItem...QGraphicsScene主要功能有以下: - 负责检测图元对象是否重叠跟交会 - 负责图元选择与编辑管理 - 负责查找与发现图元对象跟位置 - 负责接受信号事件并传递给图元 Qt图形视图框架使用

    18210

    Python3.x+pyqtgraph实现数据可视化教程

    1、pyqtgraph库数据可视化效果还不错,特别是窗体程序图像交互性较好;安装也很方便,用 pip 安装。...2、Python中新建一个 .py 文件,然后写入如下代码并执行可以得到官方提供很多案例(含代码),出现如下界面图像: import pyqtgraph.examples pyqtgraph.examples.run...比如,程序开头部分写入如下代码就可以修改背景: pg.setConfigOption(‘background’, ‘w’) pg.setConfigOption(‘foreground’, ‘k...,我这里就分享一下我本程序心得,对有些方法使用上自己理解 项目开始 引用头文件 pyqt5_draw_1 这是主程序文件,负责主窗口图形化界面 import sys # 与PyQt5配合使用 from...、pyqtgraph未安装,最简单安装方式就用python自带pip工具安装,如果没有pip或不会安装可直接百度 c:\ pip install PyQt5 pyqtgraph 图形化主界面搭建

    2.2K20

    pyqt5之简单窗口创建

    ,之前用tkinter写了一个简单python入门教程exe,基本都是面向过程编程思想, 很少将函数式编程思想和面向对象思想,在学习pyqt5过程,希望培养面向对象编程思想!...QtWidgets 模块包含类提供了一套UI元素来创建经典桌面风格用户界面。 QtMultimedia 模块包含类用于处理多媒体内容链接摄像头无线电功能API。...PyQT4 and Pyqt5 fifferences 兼容pyqt4, 模块被改写,新模块引入 三.简单窗口建立 没有父类组件是顶级窗口。...parent参数是一个用来放置我们按钮组件 qbtn.clicked.connect(QCoreApplication.instance().quit) PyQt5,事件处理系统由信号...注意QCoreAppli类由QApplication创建。点击信号连接到quit()方法,将结束应用。 事件通信两个对象之间进行:发送者接受者。

    1.7K20

    PyQt5+Pycharm安装配置图文教程详解

    PyQt5安装 之前安装过anaconda,里面是含有pyqt环境里搜索可以看到,但是针对实际开发,并没有全部qt5工具,所以需要再次安装。 cmd里面运行: ?...PyQt5安装测试 Python输入: import PyQt5 不报错即为正确,查看PyQt5所依赖模块,通过如下命令查看: help(PyQt5) ?...配置pycharm 新建一个工程,选择解释器,解释器为你安装Python路径,此时解释器是可以看到PyQt5pyqt5-tools: ?...如下图为新增Qt Designer窗口中填写内容: Name:可自己定义 program:Qt Designer安装路径 parameter:填 directory: FileDir....py文件,就会看到刚才Qt Designer创建文件了,如下图,实现了.ui 文件.py 文件相互转换。

    3.5K20

    PyQt5+Pycharm安装配置「建议收藏」

    PyQt5安装 之前安装过anaconda,里面是含有pyqt环境里搜索可以看到,但是针对实际开发,并没有全部qt5工具,所以需要再次安装。...键入 path 可以看到: PyQt5安装测试 Python输入: import PyQt5 不报错即为正确,查看PyQt5所依赖模块,通过如下命令查看: help(PyQt5) 配置pycharm...新建一个工程,选择解释器,解释器为你安装Python路径,此时解释器是可以看到PyQt5pyqt5-tools: 然后设置里面点击external tools,点击“+”,需要添加Qt...如下图为新增Qt Designer窗口中填写内容: Name:可自己定义 program:Qt Designer安装路径 parameter:填 directory: FileDir....py文件,就会看到刚才Qt Designer创建文件了,如下图,实现了.ui 文件.py 文件相互转换。

    1.3K20

    python 使用PyQt5

    一:安装PyQt5 pip install pyqt5 二:PyQt5简单使用 1:使用PyQt5创建一个简单窗口 import sys from PyQt5 import QtWidgets #创建一个应用...(Application)对象,sys.argv参数是一个来自命令行参数列表, # Python脚本可以shell运行。...#循环执行窗口触发事件,结束后不留垃圾退出,添加的话新建widget组件就会一闪而过 sys.exit(app.exec_()) 现象如下: 2:给创建窗口添加标题图标 import...sys from PyQt5 import QtWidgets,QtGui #创建一个应用(Application)对象,sys.argv参数是一个来自命令行参数列表, # Python脚本可以shell...三:将上述方法总结一下实现了一个简单功能,如下: 功能为:输入框输入值过后,点击按钮就会打印出你输入值,关闭窗口会有提示 import sys from PyQt5 import QtWidgets

    71530

    猫头虎 分享:Python库 PyQt 简介、安装、用法详解入门教程

    它允许你使用 Python 编写功能强大且视觉吸引力桌面应用程序。PyQt 提供了丰富控件工具,可以帮助开发者创建各种复杂界面组件。...PyQt 版本 PyQt 主要有两个版本: PyQt4:适用于 Qt4 框架,已经比较老旧,建议新项目使用。 PyQt5:适用于 Qt5 框架,功能强大,广泛应用于现代应用开发。... Windows 上安装 pip install PyQt5 macOS 上安装 pip3 install PyQt5 Linux 上安装 sudo apt-get install python3...PyQt 基本用法详解 创建第一个 PyQt 应用 安装好 PyQt 之后,接下来我们创建一个简单 PyQt 应用。...解决方法: 确保 app.exec_() 代码最后调用,因为这是进入 Qt 事件循环必要步骤。 检查代码是否有未处理异常,导致程序提前退出。

    9010

    Python第三方模块:PyQt5简介

    ,也可推荐有趣 Python 第三方模块 创作模板:文章目录- [项目/需求实战碰到问题](https://cloud.tencent.com/developer)- [第三方模块(PyQt5)介绍...它可用于Python 23。本教程使用Python 3。Qt库是最强大GUI库之一。pyqt5官方网站http://www.riverbankcomputing.co.uk/news。...pyqt5做为Python一个模块,它有620多个类6000个函数方法。这是一个跨平台工具包,它可以运行在所有主要操作系统,包括UNIX,Windows,Mac OS。pyqt5是双重许可。...开发者可以GPL商业许可之间进行选择。...推荐理由模块使用方法简单,上手快采用可视化界面拖拽设计程序图形化界面可用模块自动生成代码PyQt5速度上手实战(python3.9+Pycharm)安装PyQt5PyQt5-toolspip install

    58500

    Python 图形界面框架 PyQt5 使用指南!

    PyQt5是基于Digia公司Qt5Python接口,由一组Python模块构成。PyQt5本身拥有超过620个类6000函数及方法。...QtWidgets:包含了一系列创建桌面应用 UI 元素。 QtMultimedia:包含了处理多媒体内容调用摄像头 API 类。 QtBluetooth:包含了查找连接蓝牙类。...调用界面类Ui_Dialog,然后在其中添加查询天气业务逻辑代码,这样就做到了界面显示业务逻辑分离。...新增demo.py文件, MainDialog类定义了两个槽函数queryWeather()clearText(),以便在界面文件Weather.ui定义两个按钮(queryBtn clearBtn...fbs安装方法: pip install fbs 使用方法,命令行输入: fbs startproject 执行完成后需要输入一些APP名称等。

    6.4K21

    用Python手把手教你实现一个爬虫(含前端界面)

    作为开发者对数据处理并不陌生,关于使用python应该也不会陌生,因为现在python语言已经初中阶段就开始普及了,关于python主要功能之一爬虫想必也陌生,其实爬虫(也称网络蜘蛛)是一种能够自动抓取网络数据工具...库解析HTML页面接下来再来介绍一下解析HTML页面的三方库,python也有对应库来支持解析HTML页面,BeautifulSoup是一个非常流行HTML解析库,它可以帮助我们轻松地解析HTML...具体使用PyQt5构建前端界面的步骤如下所示:导入PyQt5创建一个QApplication对象创建一个主窗口对象主窗口对象添加控件设置控件属性连接控件信号槽接下来分享一下具体使用方法,下面就是一个使用...(self.on_button_clicked) # 主窗口对象添加控件 self.setCentralWidget(self.button) # 设置控件属性...(self.on_button_clicked) # 主窗口对象添加控件 self.setCentralWidget(self.button) # 设置控件属性

    2.9K72

    python安装qt5_pycharm+QT5+python3安装与环境配置

    尼玛是资料太少(几乎没有完整),花了1整天时间来配置,希望大家也浪费,时间是金钱买不来。 需要安装哪些东西呢?...而对于SWIG,一旦自动生成C++生成完毕,整个流程就不再依赖SWIG了。 需要注意: 如果你安装了PyQt4PyQt5,那么PyQt4PyQt5无法共享sip。...打开你pycharm windows配置截图: image.png 配置PyUIC 用于把QtDesigner创建UI文件转换成py文件。...我们创建窗口程序,选择Man Window,让后点击create。 点击create后,会出现画布控件 拖动一个文本写点内容: 保存布局文件。...选择保存路径 此时项目下可以看到这个文件了。 但是这个文件python不能直接运行啊,咋办? 此时需要我们上面配置另一个工具了PyUIC。

    2.9K40

    推荐一款科研必备Python数据可视化神器——PyQtGraph

    PyQtGraph PyQtGraph是一个纯python图形GUI库,构建于PyQt4/PySidenumpy之上,它主要用于数学/科学/工程应用方面。 ?...虽然该库完全用python编写,但其内部使用了QtGraphicsView框架及numpy计算库,因此其图形绘制及数据处理速度方面有着极其优异表现。...大多数使用pyqtgraph数据可视化应用程序都会生成可交互缩放,平移使用鼠标配置小部件。 ? 安装很简单 ?...绘图方法 pyqtgraph绘制数据有几种基本方法: pyqtgraph.plot():创建一个显示数据新图形窗口 PlotWidget.plot():将一组新数据添加到现有的绘图小部件 PlotItem.plot...():将一组新数据添加到现有的绘图小部件 GraphicsLayout.addPlot():在网格添加一个新图形 所有这些方法都接收相同基本参数,这些参数控制如何绘制数据显示图形: x - 可选

    1.6K20

    41.python 进程Process与线程threading区别

    积小流无以成江海,程序人生精彩需要坚持不懈地积累!...,因为一个子进程崩溃了,不会影响主进程其他子进程,多进程模式缺点是Windows下创建进程开销巨大。...另外,操作系统能同时运行进程数也是有限,在内存CPU限制下,如果有几千个进程同时运行,操作系统连调度都会成问题(进程创建比线程创建更加占用计算机资源); 4.多线程模式致命缺点就是任何一个线程挂掉都可能直接造成整个进程崩溃...,占用多个cpu资源),下面关于并行并发做一个简单了解; 四.关于线程并发进程并行简单介绍 并行是指两个或者多个事件同一时刻发生,python进程属于并行,能充分利用计算机资源,效率最高,...并发是指两个或多个事件同一时间间隔发生,python线程属于并发,不管计算机有多少个CPU,不管你开了多少个线程,同一时间多个任务会在其中一个CPU来回切换,只占用一个CPU,效率并不高; ?

    44320
    领券