精华内容
下载资源
问答
  • pyqt5 TabWidget

    千次阅读 2017-06-26 08:54:51
    希望在一个图片窗口里利用tabwidget显示多幅图片,或者同时可显示图片和视频 图片显示通过:QGraphicsView, QGraphicsScene,QGraphicsPixmapItem 视频播放通过...from PyQt5.QtWidgets import QApplication,

    希望在一个图片窗口里利用tabwidget显示多幅图片,或者同时可显示图片和视频

    图片显示通过:QGraphicsView, QGraphicsScene,QGraphicsPixmapItem

    视频播放通过QMediaplayer


    from PyQt5 import QtWidgets,QtCore
    from PyQt5.QtWidgets import QApplication,QMainWindow,QGridLayout,QTabWidget,QPushButton,\
    							QVBoxLayout,QHBoxLayout,QWidget,QGraphicsView,QGraphicsScene,\
    							QGraphicsPixmapItem,QTabBar
    from PyQt5.QtMultimediaWidgets import QVideoWidget
    from PyQt5.QtMultimedia import QMediaMetaData, QMediaPlayer,QMediaContent
    from PyQt5.QtGui import QPixmap
    from PyQt5 import QtGui
    from PyQt5.QtCore import QUrl
    
    class 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)
    		pass
    
    	def 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)
    		pass
    
    	def palyMedia(self,signal):
    		self.videoplayer.play()
    		pass
    
    	def stopMedia(self,signal):
    		self.videoplayer.pause()
    		pass
    		
    
    if __name__ == '__main__':
    	
    	import sys
    	app = QApplication(sys.argv)
    	mainWin = MainWindow()
    	# app.setActiveWindow(mainWin)
    	mainWin.show()
    	sys.exit(app.exec_())
    
    






    展开全文
  • 今天小编就为大家分享一篇对pyqt5中QTabWidget的相关操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多,则可以对这些字段进行拆分...
  • PyQt5隐藏tabwidget 标签

    2021-12-02 09:45:39
    隐藏tabwidget 标签 有的时候可能出于某种原因,我们不想让用户看见tabwidget标签,需要隐藏掉。那该怎么办呢,不要急,按照如下即可: self.tabBar = self.tabWidget.findChild(QTabBar) self.tabBar.hide()

    隐藏tabwidget 标签

    有的时候可能出于某种原因,我们不想让用户看见tabwidget标签,需要隐藏掉。那该怎么办呢,不要急,按照如下即可:

    self.tabBar = self.tabWidget.findChild(QTabBar)
    self.tabBar.hide()
    
    展开全文
  • formDoc = self.ui.tabWidget.currentWidget() def getcurdoc(self): formDoc = self.ui.tabWidget.currentWidget() print(self.ui.tabWidget.currentWidget().windowTitle()) self.doc = formDoc if ...

    formDoc = self.ui.tabWidget.currentWidget() 

       def getcurdoc(self):
          formDoc = self.ui.tabWidget.currentWidget()
          print(self.ui.tabWidget.currentWidget().windowTitle())
          self.doc = formDoc
          if isinstance(self.doc, QmyFormDoc):
             self.browser = formDoc.ui.browser
          if isinstance(self.doc, QmyoldFormDoc):
             pass
       def setdoctitle(self,titlename):
          index = self.ui.tabWidget.currentIndex()
          self.ui.tabWidget.setTabText(index, titlename)
          self.ui.tabWidget.currentWidget().setWindowTitle(titlename)
       def getdoc(self):
          formDoc = QmyFormDoc(self)
          formDoc.setWindowTitle("db")
          formDoc.setAttribute(Qt.WA_DeleteOnClose)
          self.doc = formDoc
          self.browser = formDoc.ui.browser
          title = "Doc %d" % self.ui.tabWidget.count()
          curIndex = self.ui.tabWidget.addTab(formDoc, title)
          self.ui.tabWidget.setCurrentIndex(curIndex)
          self.ui.tabWidget.setVisible(True)

    展开全文
  • 主要介绍了PyQt5主窗口动态加载Widget实例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
  • PYQT 实现TabWidget 双击关闭功能

    千次阅读 2018-07-25 17:12:40
    转载:http://blog.csdn.net/u010136741/article/details/42915201 , 本文出自:【木木--MAIKA】     转载请标明出处:... tabwidget双击关闭功能,类似360浏览器。由于工作...

    转载:http://blog.csdn.net/u010136741/article/details/42915201 , 本文出自:【木木--MAIKA】

     

     

    转载请标明出处:http://blog.csdn.net/u010136741/article/details/42915201 , 本文出自:【木木--MAIKA】

    tabwidget双击关闭功能,类似360浏览器。由于工作需要,显示到网上搜索了相关文章,提示重写doubleclick事件,然后发送tabCloseRequested(int) 信号

    所以,马上自定义Qtabwidget类,重写mouseDoubleClickEvent方法,发现点击上面的tab没反应,点击下面的窗口反而有反应,尝试失败。

    看会PYQT4手册,发现Qtabwidget有一个setTabBar方法,所以想,应该是重写tabbar的mouseDoubleClickEvent方法,测试成功。

    上代码,再解释

     

     

     

     

     


     

     

     

     

    
    #coding:utf-8
    
     
    
    import sys
    
     
    
    from PyQt4.QtGui import *
    
    from PyQt4.QtCore import *
    
     
    
    class KUnit:
    
        #调试类
    
        @staticmethod
    
        def run(name,C):
    
        
    
            if name == "__main__":
    
                import sys
    
                app = QApplication(sys.argv)
    
                
    
                obj = C()
    
                obj.show()
    
                sys.exit(app.exec_())
    
                
    
    class KTabBar(QTabBar):
    
        
    
        #自定义tabbar,实现双击关闭
    
        def __init__(self,parent = None):
    
            QTabBar.__init__(self,parent)
    
            
    
        def mouseDoubleClickEvent(self, event):
    
            
    
            #获取点击的tab
    
            tabId = self.tabAt(event.pos())
    
            #发送关闭信号和tabid
    
            self.emit(SIGNAL("tabCloseRequested(int)"),self.tabAt(event.pos()))
    
            
    
            QTabBar.mouseDoubleClickEvent(self, event)
    
     
    
    class MyDialog(QDialog):
    
        
    
        def __init__(self,parent = None):
    
            QDialog.__init__(self,parent)
    
            
    
            layout = QVBoxLayout(self)
    
            self.setFixedSize(QSize(500,500))
    
            self.tabwidget = QTabWidget()
    
            layout.addWidget(self.tabwidget)
    
            
    
            
    
            #设置tabwidget的bar
    
            self.tabwidget.setTabBar(KTabBar())
    
            #允许tab点击关闭
    
            self.tabwidget.setTabsClosable(True)
    
            
    
            self.tabwidget.addTab(QDialog(),"tab1")
    
            self.tabwidget.addTab(QDialog(),"tab2")
    
            self.tabwidget.addTab(QDialog(),"tab3")
    
            self.tabwidget.addTab(QDialog(),"tab4")
    
            self.tabwidget.addTab(QDialog(),"tab5")
    
            #连接信号槽
    
            self.connect(self.tabwidget, SIGNAL("tabCloseRequested(int)"),self.closeTab)
    
            
    
            
    
        def closeTab(self,tabId):
    
            #关闭置顶信号槽
    
            self.tabwidget.removeTab(tabId)
    
            
    
    KUnit.run(__name__,MyDialog)
    
     
    
     
    

     

     

    上面的代码有3个类:

    KUnit,调试用的

    KTabBar,重写QTabBar控件

    MyDialog,测试窗口

    KUnit 不需要多解释了,

    KTabBar 主要是重写 mouseDoubleClickEvent方法,重点是(获取到双击的tab)和(发送关闭信号)。通过tabAt(event.pos())获取双击的tab 的索引,tabAt方法也是查询手册发现的。然后就发送关闭信号。

    MyDialog 类先布局,然后设置tabwidget的tabbar(setTabBar),然后开启点击关闭的功能(setTabsClosable),添加测试窗口,最后绑定信号槽,然后用自定义的closeTab方法接受传过来的tabId,最后调用 removeTab 方法关闭tab!

     

     

    最后,自己还有个疑问,我是在tabbar发送的 tabCloseRequested(int) 信号,但是这个信号应该是tabwidget的,为啥没报错呢!求路过的大牛解答!

    附件地址:http://download.csdn.net/detail/u010136741/8378829

    展开全文
  • 如下所示: >>> for i in range(self.gridLayout.count()): ... 您可能感兴趣的文章:PyQt5主窗口动态加载Widget实例代码对pyqt5中QTabWidget的相关操作详解PyQt5 QListWidget选择多项并返回的实例
  • 实战PyQt5: 050-选项卡控件QTabWidget

    千次阅读 2020-11-20 09:30:11
     QtGui, QtWidgets from PyQt5.QtCore import Qt from PyQt5.QtGui import QFont from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QTabWidget, QMenuBar, QMenu, QAction, ...
  • PyQt5 QTabWidget控件应用

    千次阅读 2019-10-21 09:50:01
    本例实现在PyQt5中的悬浮面板QDockWidget上嵌入一个QTabWidget控件,实现QDockWidget布局的分页效果 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QMainWindow, QTextEdit, QDockWidget, ...
  • 1.示例1 ...from PyQt5.QtWidgets import (QApplication,QWidget,QTextEdit,QHBoxLayout,QLineEdit,QLabel,QTabWidget, QFormLayout,QGridLayout) #继承了QTabWidget类 class TabWidgetDemo(QTabWid.
  • self.tabBar = self.tabWidget_Main.findChild(QTabBar) self.tabBar.hide() 设置tab widget某一页显示 self.toolButton_ContactAuthor.clicked.connect(self.click_ContactAuthor) # 按钮连接 def ...
  • PyQt5 QTabWidget 简介

    千次阅读 2019-01-25 10:59:29
    PyQt5.QtWidgets import * class TabDemo (QTabWidget) : def __init__ (self,parent=None) : super(TabDemo, self).__init__(parent) #创建3个选项卡小控件窗口 self.tab1=QWidget() self.tab2...
  • QListWidget 是继承 QWidget 的,所以 QListWidget 是有右键菜单的,从文档上可以找到 QWidget 上有以下两个与右键菜单有关的函数:Qt.ContextMenuPolicyself)self, Qt.ContextMenuPolicypolicy)Qt.ContextMenuPolicy ...
  • 1.pyqt5 同页面多个窗口 pyqt5像让同一个界面拥有多个子窗口,就像这样: 使用TabWidget控件: 将其拖入到你的界面中就可以了。 2. 为TabWidget 添加多个tab 这样,拖入进去默认的是两个tab界面,如何添加多个...
  • PyQt5高级界面控件之QTabWidget(六)

    万次阅读 多人点赞 2018-08-14 16:10:46
    PyQt5.QtWidgets import * class TabDemo (QTabWidget) : def __init__ (self,parent=None) : super(TabDemo, self).__init__(parent) #创建3个选项卡小控件窗口 self.tab1=QWidget() self.tab2...
  • QT5 tabWidget隐藏tab

    千次阅读 2019-03-18 15:56:06
    今天要探讨的问题是如何隐藏 tabWidget 的某一页,例如下图,我想隐藏 协议2 这一页 那么大家首先想到的是 ui->tabWidget->setTabEnabled(1,false); 但是这样出来的效果并不能很好得满足我们的需求...
  • pyqt5中QTabWidget的相关操作

    千次阅读 2019-05-06 19:25:08
    首先,下面贴上designer处理的界面文件(转换成py后的): # -*- coding: utf-8 -*- # Form implementation generated from reading ui...# Created by: PyQt5 UI code generator 5.12.1 # # WARNING! All changes ...
  • pyqt5 多界面切换 QTabWidget

    千次阅读 2020-04-01 15:09:15
    pyqt5 多界面切换 QTabWidget <pyqt5 快速开发与实战page272>
  • 代码 核心代码就一点 self.tabWidget.currentChanged.connect(self.tabchange) # self.tab_2.changeEvent(self.tabchange2) def tabchange(self): #ps这个current index 是从左到右依次增加的 print('index:',self....
  • QTabWidget 选项卡控件使用 的案例 ...from PyQt5.QtWidgets import QApplication, QWidget, QTableWidget, QTableWidgetItem, QMenu, QVBoxLayout, QMainWindow, \ QTreeWidget, QTreeWidgetItem, ...
  • PYQT5中修改tab的标题

    2018-07-03 03:32:32
    ![图片说明](https://img-ask.csdn.net/upload/201807/03/1530588953_450531.png)![图片说明]... tab是用qt designer设计的,现在想纯代码修改一下标题,或者在designer中修改也可以
  • tabwidget双击关闭功能,类似360浏览器。由于工作需要,显示到网上搜索了相关文章,提示重写doubleclick事件,然后发送tabCloseRequested(int) 信号 所以,马上自定义Qtabwidget类,重写mouseDoubleClickEvent方法...
  • from PyQt5.QtGui import * from PyQt5.QtWidgets import * class TabDemo(QTabWidget): def __init__(self,parent=None): super(TabDemo, self).__init__(parent) #创建3个选项卡小控件窗口 self.tab1=QWidget() ...
  • 主要函数是setStyleSheet self.account_statement_table.horizontalHeader().setStyleSheet( "QHeaderView::section{background-color:rgb(155, 194, 230);font:11pt '宋体';color: black;};")

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 572
精华内容 228
关键字:

pyqt5的tabwidget