首页 > 其他分享 >26.PyQt5【高级组件】工具箱-QToolBox

26.PyQt5【高级组件】工具箱-QToolBox

时间:2023-01-16 10:55:06浏览次数:50  
标签:index 26 layout self PyQt5 QToolBox 组件 frame

一、前言

QToolBox控件提供了一个可进行一列选项卡操作方式,在每个选项卡内可包含不同的控件布局。QToolBox将选项卡一个一个地显示,当前项目显示在当前选项卡下方。每个选项卡在选项卡列中都有一个索引位置。一个选项卡的项目是一个QWidget。

二、学习目标

1.QToolBox常用方法

2.QToolBox常用信号

3.QToolBox组件的应用

三、知识点

1.【QToolBox常用方法】

方法 描述
addItem(widget,icon,text)
addItem(widget,text)
将小部件添加到工具箱底部的新选项卡中。新选项卡的文本设置为text。
insertItem(index,widget,icon,text)
insertItem(index,widget,text)
将小部件插入位置index处,如果索引超出范围,则将其插入工具箱的底部。新项目的文本设置为text。
removeItem(index) 从工具箱中删除位置索引处的项目。
setCurrentIndex(index) 设置当前显示指定索引的工具集
setCurrentWidget(widget) 设置当前显示指定组件的工具集
setItemText(index,text) 将位置索引处的项目的文本设置为text
setItemEnabled(index,enabled) 如果启用为true,则启用位置索引处的项目;否则为0。否则,位置索引处的项目被禁用。
setItemIcon(index,icon) 将位置索引处的项目的图标设置为icon。
widget(index) 返回位于位置index的小部件,如果没有此类项,则返回None
indexOf(widget) 返回窗口小部件的索引,如果该项不存在,则返回-1。
count() 此属性保存工具箱中包含的项目数。默认情况下,此属性的值为0。
currentIndex() 该属性保存当前项目的索引。默认情况下,对于空工具箱,此属性的值为-1。
currentWidget() 返回指向当前小部件的指针,如果没有此类项,则返回None。
isItemEnabled(index) 如果启用了位置索引处的项目,则返回true;否则,返回true。否则返回false。
itemText(index) 返回位于位置index处的项目的文本,如果index超出范围,则返回一个空字符串。

2.【QToolBox常用信号】

信号 描述
currentChanged(index) 工具箱切换项目时,触发信号

3.【QToolBox组件的应用】

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QToolBox, QPushButton, QFrame


class QmyWidget(QWidget):

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类的构造函数,创建QWidget窗体
        self.setupUi()

    def setupUi(self):
        """页面初始化"""
        # 设置窗体大小及标题
        self.resize(500, 400)
        self.setWindowTitle("QToolBox组件示例")
        # 创建布局
        self.main_layout = QVBoxLayout()

        # QVBoxLayout组件定义
        self.toolBox = QToolBox()   # 定义工具箱
        self.setupTool1()           # 初始化构造的工具集1
        self.setupTool2()           # 初始化构造的工具集2
        # QVBoxLayout组件设置
        self.toolBox.setCurrentIndex(1)
        self.toolBox.setItemIcon(0, QIcon("logo.png"))
        self.toolBox.setItemIcon(1, QIcon("logo.png"))
        # QVBoxLayout绑定信号
        self.toolBox.currentChanged.connect(self.on_toolBox_currentChanged)

        # 将组件添加到布局中
        self.main_layout.addWidget(self.toolBox)
        # 为窗体添加布局
        self.setLayout(self.main_layout)

    def setupTool1(self):
        """槽函数"""
        # 1.创建一个frame容器
        frame = QFrame()
        # 2.创建垂直布局实例
        layout = QVBoxLayout()
        # 3.创建子组件,如按钮组件
        button1 = QPushButton("Button1")
        button2 = QPushButton("Button2")
        # 4.为布局添加子组件
        layout.addWidget(button1)
        layout.addWidget(button2)
        # 将布局添加到frame容器
        frame.setLayout(layout)
        self.toolBox.addItem(frame, "Tool 1")

    def setupTool2(self):
        """槽函数"""
        # 1.创建一个frame容器
        frame = QFrame()
        # 2.创建垂直布局实例
        layout = QVBoxLayout()
        # 3.创建子组件,如按钮组件
        button3 = QPushButton("Button3")
        button4 = QPushButton("Button4")
        # 4.为布局添加子组件
        layout.addWidget(button3)
        layout.addWidget(button4)
        # 将布局添加到frame容器
        frame.setLayout(layout)
        self.toolBox.addItem(frame, "Tool 2")

    def on_toolBox_currentChanged(self, index):
        """槽函数"""
        print("当前切换的工具集为:{}".format(str(index)))


if __name__ == '__main__':
    app = QApplication(sys.argv)
    myMain = QmyWidget()
    myMain.show()
    sys.exit(app.exec_())

标签:index,26,layout,self,PyQt5,QToolBox,组件,frame
From: https://www.cnblogs.com/ckxingchen/p/17054891.html

相关文章

  • 3.PyQt5【窗口组件】主窗口-QMainWindow
    一、前言QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围......
  • 4.PyQt5【布局组件】水平布局-QHBoxLayout
    一、前言QLayout是Qt中布局管理器的抽象基类,通过对QLayout的继承,实现了功能各异且互补的布局管理器。布局管理器不是界面组件,而是界面组件的定位策略;任意容器类型的组件都......
  • 5.PyQt5【布局组件】垂直布局-QVBoxLayout
    一、前言本节我们介绍布局组件中的垂直布局QVBoxLayout。二、学习目标1.QVBoxLayout垂直布局应用三、知识点1.【QVBoxLayout垂直布局应用】垂直布局将多个控件在垂直......
  • 6.PyQt5【布局组件】网格布局-QGridLayout
    一、前言本节我们介绍布局组件中的网格布局QGridLayout。二、学习目标1.QGridLayout网格布局的应用三、知识点1.【QGridLayout网格布局的应用】网格布局也称栅格布局......
  • 7.PyQt5【布局组件】表单布局-QFormLayout
    一、前言本节我们介绍布局组件中的表单布局QFormLayout。二、学习目标1.QFormLayout表单布局的应用三、知识点1.【QFormLayout表单布局的应用】表单布局以两列的形式......
  • 9.PyQt5【布局组件】区域分隔器-QSplitter
    一、前言本节我们介绍布局组件中的区域分隔器QSplitter。二、学习目标1.QSplitter区域分隔器的应用三、知识点1.【QSplitter区域分隔器的应用】QSplitter是一个带切......
  • 8.PyQt5【布局组件】容器布局-QGroupBox
    一、前言本节我们介绍布局组件中的容器布局QGroupBox。二、学习目标1.QGroupBox容器布局的应用三、知识点1.【QGroupBox容器布局的应用】容器布局将容器控件(Containe......
  • 10.PyQt5【基本组件】标签-QLabel
    一、前言QLabel对象充当占位符以显示不可编辑的文本或图像,或动画GIF电影。它也可以用作其他小部件的助记键。标签上可以显示纯文本、超链接或富文本。二、学习目标1.Q......
  • 11.PyQt5【基本组件】单行输入框-QLineEdit
    一、前言QLineEdit是最常用的输入字段。它提供了一个框,可以在其中输入一行文本。二、学习目标1.QLineEdit常用方法2.QLineEdit常用信号3.QLineEdit组件的应用三、知......
  • 12.PyQt5【基本组件】多行输入框-QTextEdit
    一、前言QTextEdit文本输入框可以输入多行文本。二、学习目标1.QTextEdit常用方法2.QTextEdit常用信号3.QTextEdit组件的应用三、知识点1.【QTextEdit常用方法】......