首页 > 其他分享 >pyqt5-QTabWidget

pyqt5-QTabWidget

时间:2023-04-16 23:58:02浏览次数:49  
标签:__ int 标签 self pyqt5 ui QWidget QTabWidget

QTabWidget 详解 – fengMisaka – 博客园 (cnblogs.com)

1、介绍

标签页组件。

2、类和初始化

class QTabWidget(QWidget):
    def __init__(self, parent=None):
        pass

3、属性

4、常用方法

(1)addTab

    def addTab(self, QWidget, *__args):
        """
        addTab(self, QWidget, str) -> int
        addTab(self, QWidget, QIcon, str) -> int
        """
        return 0
  • 添加子标签页,默认在末尾
  • QWidget参数,可以是QWidget组件本身,即一个窗口。也可以是继承其的组件,但一般不这么用
  • str参数,设置标签页上的标记文本
  • QIcon,设置标签页上的图片
  • int,返回一个int类型,为添加的标签页的索引

(2)clear

  • 清除所有标签子页,但是tab组件仍然占据空间

(3)count

  • 返回标签页的个数

(4)currentIndex

  • 返回当前标签页的索引,从0开始,最左边的标签页

(5)currentWidget

  • 返回当前标签页的组件,QWidget类型,即前面添加的组件

(6)widget

widget(self, int) -> QWidget
  • 作用是返回指定索引的页面,返回类型是QWidget
  • 如果指定QWidget添加到tab页中,则返回的就是添加的对象。
  • 如果该方法指定的索引就是当前tab页的索引,则返回对象和currentWidget方法获取的对象是相同的

(7)indexOf

    def indexOf(self, QWidget): # real signature unknown; restored from __doc__
        """ indexOf(self, QWidget) -> int """
        return 0
  • 根据标签子页绑定的组件查询其在标签页组件中的索引,从0开始

(8)insertTab

    def insertTab(self, p_int, QWidget, *__args): # real signature unknown; restored from __doc__ with multiple overloads
        """
        insertTab(self, int, QWidget, str) -> int
        insertTab(self, int, QWidget, QIcon, str) -> int
        """
        return 0
  • 和addTab类似,在指定位置插入,其他标签页后移
  • p_int最小为0

(9)isMove

  • 判断标签页是否可以移动,即拖动交互位置,返回bool

5、事件

(1)

    def currentChanged(self, p_int): # real signature unknown; restored from __doc__
        """ currentChanged(self, int) [signal] """
        pass

6、示例

# designer设计,加载ui运行
from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget, QPushButton, QWidget
from PyQt5.uic import loadUi
from PyQt5.QtCore import Qt


import sys

class my_window:
    # 记录使用过的标签索引
    index = 0

    def __init__(self):
        self.ui = loadUi('ui\\tab.ui')
        self.ui.pushButton.clicked.connect(self.init_tab)
        self.ui.tabWidget: QTabWidget
        # 绑定关闭标签子页
        self.ui.tabWidget.tabCloseRequested.connect(self.close_tab)
        self.ui.show()

    def close_tab(self, n):
        self.ui.tabWidget.removeTab(n)

    def add_tab(self):
        # 在次末尾处添加
        self.index = self.index + 1
        self.ui.tabWidget.insertTab(self.ui.tabWidget.count() - 1, QWidget(), str(self.index))

    def init_tab(self):
        """
        初始化,通过designer设计,会初始有两个标签子页,需要先去除,然后添加一个标签子页,并将其设置为按钮添加,点击可以添加子页 
        """
        self.ui.tabWidget: QTabWidget
        # 关闭所有标签子页
        self.ui.tabWidget.clear()
        # 添加一个标签子页,没有文本,索引为0
        self.ui.tabWidget.addTab(QWidget(), "")
        # 对索引为0的该标签子页设置按钮
        btn = QPushButton("+")
        self.ui.tabWidget.tabBar().setTabButton(0, self.ui.tabWidget.tabBar().RightSide, btn)
        #
        btn.clicked.connect(self.add_tab)
        self.add_tab()


if __name__ == '__main__':
    app = QApplication([])
    w = my_window()
    sys.exit(app.exec_())

点击初始化按钮

标签:__,int,标签,self,pyqt5,ui,QWidget,QTabWidget
From: https://www.cnblogs.com/wd404/p/17324480.html

相关文章

  • pyqt5-QAction
    1、介绍动作。这是QMenu添加的项,或者QMenuBar组件直接添加。2、类和初始化classQAction(__PyQt5_QtCore.QObject):"""QAction(parent:QObject=None)QAction(str,parent:QObject=None)QAction(QIcon,str,parent:QObject=None)"""......
  • pyqt5-QMenu
    1、介绍菜单组件。有两种场景:窗口的菜单栏设置一个或多个QMenu其他组件绑定右键菜单,探出一个QMenu2、类和初始化classQMenu(QWidget):"""QMenu(parent:QWidget=None)QMenu(str,parent:QWidget=None)"""def__init__(self,*__args):......
  • pyqt5-QMenuBar
    1、介绍菜单栏组件。这里指的是QMainWindow窗口顶部水平的菜单栏。2、类和初始化classQMenuBar(QWidget):"""QMenuBar(parent:QWidget=None)"""def__init__(self,parent=None):pass一般是通过QMainWindow窗口组件调用menuBar方法获取到QMenuBar对......
  • pyqt5-介绍
    1、介绍pyqt是python的一个主流的第三方模块,与Qt融合,用于GUI开发。支持多种常用组件,并且具有很好的默认显示效果QtDesigner支持图形化直接设计ui,大大减轻工作,得到更好的效果使用范围广,网络上有很多的中文文档和问答,方便开发支持pyqthon3语法,目前是pyqt5版本2、比较tkint......
  • pyqt5-QMainWindow
    1、介绍QMainWindow是一个窗口组件,也是最常用的主窗口。importsysfromPyQt5.QtWidgetsimportQMainWindow,QApplicationfromPyQt5.uicimportloadUiclassmy_window:def__init__(self):self.ui=loadUi('ui\\main_window.ui')self.ui:QMa......
  • pyqt5-开发
    1、介绍这里介绍pyqt的一般开发过程。2、主窗口一般,使用QMainWindow组件作为主窗口。然后分为三个部分:标题栏,即窗口名称、图标和关闭按钮等所在行菜单栏和工具栏主界面(1)标题栏可以是直接使用pyqt提供的默认样式,也可以取消默认样式,然后自定义(2)主界面一般不会直接在主界......
  • pyqt5-事件
    1、介绍pyqt提供了事件机制使用户和程序进行交互。2、xxed方法组件的类中声明的类似xxed形式的方法,用于表示事件,使用时将其调用connect方法,指定处理方法。示例:xx.clicked.connect(self.opt)绑定组件对象的鼠标单击事件,如果触发,则调用opt方法3、xxEvent方法组件的类中声......
  • pyqt5-布局
    1、介绍pyqt可以基于designer快速进行布局,所见即所得,不用关心代码。2、绝对布局通过组件的move和update等方法,可以设置组件的左上顶角在父组件的中的绝对位置,从而实现布局。在实际开发中,可以用于窗口的位置设置,但是一般不用于窗口内组件的管理move(x,y)#x表示水平方向,y......
  • pyqt5-QWidget
    1、介绍QWidget是几乎所有pyqt组件的直接或间接父类,其声明的属性和方法很具有代表性。其他组件极大可能是直接使用,所以一般不再阐述。除非少数可能做了个性化覆写。2、类和初始化classQWidget(__PyQt5_QtCore.QObject,__PyQt5_QtGui.QPaintDevice):def__init__(self,p......
  • PyQt5 软件在 macOS HiDPI 模式下出现字体模糊的问题
    ​ Retina屏幕是苹果公司在2010年在 WWDC上发布的一种高密度像素的屏幕。HiDPI是一种渲染技术,它可以让Retina屏幕上的图像更加清晰。HiDPI技术会将图像渲染成两倍于原始分辨率的大小,然后再将其缩小到原始分辨率的大小,这样就可以让图像更加清晰。PyQt5编写的软件在Wi......