首页 > 其他分享 >16. 容器类控件

16. 容器类控件

时间:2023-12-26 17:26:03浏览次数:30  
标签:容器 选项卡 控件 index 16 索引 设置 toolBox

一、容器控件

  容器控件可以将窗口中的控件进行分组处理,使窗口的分类更加清晰,常用的容器控件有 QGroupBox 分组框、QTabWidget 选项卡和 QToolBox 工具盒。

  我们可以在终端中使用 pip 安装 pyside 模块。

pip install pyside6

二、分组框控件

  QGroupBox 控件,又称为分组框控件,它主要为其它控件提供分组,并且按照控件的分组来细分窗口的功能。该类的常用方法如下:

方法 说明
setTitle(title) 设置分组标题
setAlignment(alignment) 设置对齐方式,参数如下:
- Qt.AlignmentFlag.AlignLeft:左对齐
- Qt.AlignmentFlag.AlignRight:右对齐
- Qt.AlignmentFlag.AlignTop:顶部对齐
- Qt.AlignmentFlag.AlignBottom:底部对齐
- Qt.AlignmentFlag.AlignJustify:两端对齐
- Qt.AlignmentFlag.AlignCenter:居中对齐
- Qt.AlignmentFlag.AlignHCenter:水平居中对齐
- Qt.AlignmentFlag.AlignVCenter:垂直居中对齐
setFlat(flat) 设置是否以扁平样式显示

  QGroupBox 控件常用信号及其说明如下:

clicked(checked=false)          # 被点击时发射信号
toggled(arg__1)                 # 切换时发射信号
import sys

from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtWidgets import QGroupBox
from PySide6.QtCore import Qt

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)

    # 2.创建一个窗口
    w = QMainWindow()

    # 3.设置窗口对象大小
    w.resize(700, 500)

    # 4.创建分组框控件对象,并指定父窗口
    groupBox = QGroupBox(w)

    # 5.设置分组框控件的尺寸
    groupBox.resize(300, 100)

    # 6.设置对齐方式
    groupBox.setAlignment(Qt.AlignmentFlag.AlignVCenter)

    # 7.设置分组标题
    groupBox.setTitle("分组标题")

    # 8.设置是否以扁平样式显示
    groupBox.setFlat(False)

    # 9.展示窗口
    w.show()

    # 10.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

三、选项卡控件

  QTabWidget 控件,又称为选项卡控件,它可以将窗口设置为多页,以便使窗口的功能划分为多个部分,而每个部分都可以包含多个子控件。该类的常用方法如下:

方法 说明
addTab(widget, icon, label) 添加选项卡
insertTab(index, widget, icon, label) 向指定索引插入选项卡
removeTab(index) 删除指定索引的选项卡
tabText(index) 获取指定索引的选项卡文本
setTabText(index, text) 设置指定选项卡标题文本
tabIcon(index) 获取指定索引的选项卡图标
setTabIcon(index, icon) 设置指定索引选项卡图标
currentWidget() 获取当前选中的选项卡
setCurrentWidget(widget) 设置默认选中的选项卡
currentIndex() 获取当前选项卡的索引
setCurrentIndex(index) 设置默认选中的选项卡
setTabsClosable(closeable) 设置是否可以独立关闭选项卡
- True 表示可以关闭,在每个选项卡旁边有一个关闭按钮
- False 表示不可关闭
setTabPosition(position) 设置选项卡的标题位置,支持以下 4 种位置:
- QTabWidget.TabPosition.North:标题在北方,即上边,这是默认值
- QTabWidget.TabPosition.South:标题在南方,即下边
- QTabWidget.TabPosition.West:标题在西方,即左边
- QTabWidget.TabPosition.East:标题在东方,即右边

  QTabWidge 控件最常用的信号及其说明如下:

currentChanged(index)           # 标签栏上的选项卡改变时发射信号
tabBarClicked(index)            # 标签栏被点击时发射信号
tabBarDoubleClicked(index)      # 标签栏被双击时发射信号
tabCloseRequested(index)        # 标签栏被关闭时发射信号
import sys

from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtWidgets import QTabWidget, QWidget
from PySide6.QtGui import QIcon

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)

    # 2.创建一个窗口
    w = QMainWindow()

    # 3.设置窗口对象大小
    w.resize(700, 500)

    # 4.创建选项卡控件对象,并指定父窗口
    tabWidget = QTabWidget(w)

    # 5.设置选项卡框控件的位置和尺寸
    tabWidget.setGeometry(100, 100, 500, 300)

    # 6.添加选项卡
    tab1 = QWidget()
    tabWidget.addTab(tab1, QIcon("1.ico"), "选项卡1")

    # 7.插入选项卡
    tab2 = QWidget()
    tabWidget.insertTab(1, tab2, QIcon("1.ico"), "选项卡2")

    tab3 = QWidget()
    tabWidget.addTab(tab3, "选项卡-3")

    # 8.设置指定选项卡标题文本
    tabWidget.setTabText(2, "选项卡3")

    # 9.获取指定索引的选项卡文本
    print(tabWidget.tabText(2))

    # 10.设置指定索引选项卡图标
    tabWidget.setTabIcon(2, QIcon("1.ico"))

    # 11.设置是否可以独立关闭选项卡
    tabWidget.setTabsClosable(True)

    # 12.设置选项卡的标题位置
    tabWidget.setTabPosition(QTabWidget.TabPosition.West)

    # 13.设置默认选中的选项卡
    # tabWidget.setCurrentIndex(1)
    tabWidget.setCurrentWidget(tab3)

    # 14.获取当前选中选项卡索引
    print(tabWidget.currentIndex())

    # 15.获取当前选中的选项卡
    print(tabWidget.currentWidget())
  
    # 16.删除指定索引的选项卡
    tabWidget.removeTab(1)

    # 17.展示窗口
    w.show()

    # 18.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

TabWidge 在显示选项卡时,如果默认大小显示不下,会自动生成先前和先后的箭头,用户可以通过单击箭头,查看未显示的选项卡;

当删除某个选项卡时,选项卡会自动切换到前一个,因此也会弹出相应的信息提示。

四、工具盒控件

  QToolBox 控件,又称为工具盒控件,它主要提供一种列状的层叠选项卡。该类的常用方法如下:

方法 说明
addItem(widget, icon, text) 添加选项卡
insertItem(index, widget, icon, text) 向指定索引插入选项卡
removeItem(index) 移除指定索引的选项卡
itemText(index) 获取指定索引的选项卡的文本
setItemText(index, text) 设置指定索引的文本
itemIcon(index) 获取指定指定索引的图标
setItemIcon(index, icon) 设置指定索引的图标
currentWidget() 获取当前选项卡
setCurrentWidget(widget) 设置默认选中的选项卡
currentIndex() 获取当前选项卡的索引
setCurrentIndex(index) 设置默认选中的选项卡

  QToolBox 控件常用信号及其说明如下:

currentChanged(index)       # 当前项改变时发射信号
import sys

from PySide6.QtWidgets import QApplication, QMainWindow
from PySide6.QtWidgets import QToolBox, QWidget
from PySide6.QtGui import QIcon

if __name__ == "__main__":
    # 1.创建一个QApplication类的实例
    app = QApplication(sys.argv)

    # 2.创建一个窗口
    w = QMainWindow()

    # 3.设置窗口对象大小
    w.resize(700, 500)

    # 4.创建工具盒控件对象,并指定父窗口
    toolBox = QToolBox(w)

    # 5.设置工具盒框控件的位置和尺寸
    toolBox.setGeometry(100, 100, 500, 300)

    # 6.添加选项卡
    toolBox.addItem(QWidget(), QIcon("1.ico"), "科技部")

    # 7.向指定索引插入选项卡
    page = QWidget()
    toolBox.insertItem(1, page, QIcon("1.ico"), "魔法部")

    toolBox.addItem(QWidget(), "奇异部")
    toolBox.addItem(QWidget(), QIcon("1.ico"), "侦探部")

    # 8.设置指定索引的文本
    toolBox.setItemText(2, "超能力部")

    # 9.获取指定索引的选项卡的文本
    print(toolBox.itemText(2))

    # 10.获取指定指定索引的图标
    icon = toolBox.itemIcon(0)

    # 11.设置指定索引的图标
    toolBox.setItemIcon(2, icon)

    # 12.设置默认选中的选项卡
    # toolBox.setCurrentWidget(page)
    toolBox.setCurrentIndex(1)

    # 13.获取当前选项卡的索引
    print(toolBox.currentIndex())

    # 14.获取当前选项卡
    print(toolBox.currentWidget())

    # 15.移除指定索引的选项卡
    toolBox.removeItem(3)

    # 16.设置工具盒是否可用
    toolBox.setEnabled(False)

    # 17.展示窗口
    w.show()

    # 18.进入程序的主循环并通过exit()函数确保主循环安全结束
    sys.exit(app.exec())

标签:容器,选项卡,控件,index,16,索引,设置,toolBox
From: https://www.cnblogs.com/kurome/p/17928833.html

相关文章

  • ionic在iOS16上遇到的一些问题,图片、图标不显示,样式不正常等
    近日,一个很久之前ionic5开发的APP的iOS版因为签名描述文件(profile、.mobileProvisioning)过期而不能使用了,所以需要重新创建一个描述文件,然后重新打包APP。但过程中却遇到了一系列的问题,特写此文记录下来。问题1,iOS打包遇到问题:在xcode的Signing&Capabilities面板中选择(导入)了......
  • oracle创建非容器数据库
    1、 Oracle19crpm安装后配置的示例数据库是容器数据库,大部分系统中使用的还是以前的非容器数据库。在安装完rpm包后,可以使用dbca根据自己的需要创建数据库了,创建之前,先删除已经创建的示例数据库./oracledb_ORCLCDB-19cdelete2、编辑一个dbca.rsp文件,用来生成数据库实例(文件......
  • leetcode 1633. 各赛事的用户注册率
    https://leetcode.cn/problems/percentage-of-users-attended-a-contest/?envType=study-plan-v2&envId=sql-free-50聚合函数分组后计算的是一组内的数据,分组前我们认为所有数据是一组本题注意还需要嵌套语句selectcontest_id,round(count(user_id)/(selectcoun......
  • ArkUI容器类组件
    容器组件指的是它可以包含一个或多个子组件的组件,除了前边介绍过的公共属性外。一、线性布局容器(Row、Column)线性容器类表示按照水平方向或者竖直方向排列子组件的容器,ArkUI开发框架通过 Row 和 Colum 来实现线性布局。1.1.主轴和纵轴概念什么是主轴和纵轴?对于线性容器来说,有主......
  • VLOOKUP函数16种经典用法
    功能:在表格的首列查找指定的数值,并返回表格当前行中指定列处的数值。结构:=VLOOKUP(查找值,查找区域,列序数,匹配条件)解释:=VLOOKUP(找谁,在哪里找,第几列,0或1)说明:1、第一参数:查找值(找谁),比如说根据【姓名】来查找【成绩】,【姓名】就是查找值2、第二参数:查找区域(在哪里......
  • 【力扣】-1672. 最富有客户的资产总量|刷题打卡-JS
    给你一个 mxn 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例1:第1位客户的资产......
  • Win11今年被微软弃用功能达16项:含Cortana、写字板等
    2023年即将结束,近日有媒体盘点了微软在今年宣布弃用的16项Windows11功能,一起来看下吧。Cortana小娜助手:微软现在正大力推进新的Copilot,而作为与苹果Siri和谷歌等语音助手竞争的产品,Cortana助手曾被微软寄予了厚望,但最终也难逃被放弃的结果。在发布Copilot一周后,微软就宣布弃用Cor......
  • .net自带的树控件TreeView用法
    原文链接:https://blog.csdn.net/wenchm/article/details/133276828https://blog.csdn.net/xiaogongzhu001/article/details/131100371    TreeView控件(树控件)可以为用户显示节点层次结构,每个节点又可以包含子节点,包含子节点的节点叫父节点。就像在Windows操作系统的Wind......
  • C# WinForm控件之advTree
    原文链接:https://www.cnblogs.com/SoftWareIe/p/8757270.html0.属性和方法//属性方法advTree1.DragDropEnabled=!advTree1.DragDropEnabled;//控制是否可以拖动节点advTree1.MultiSelect=!advTree1.MultiSelect;//控制节点是否可以多选advTree1.ExpandButtonType=Dev......
  • 一个功能更强大,性能更高的树控件DevComponents.AdvTree.AdvTree(几种树形控件汇总)
    原文链接:https://www.cnblogs.com/a7373773/archive/2009/07/27/1532236.html一直在用DevComponents.DotNetBar2 控件近来探索Add()和AddRange()的性能问题。一样用极为不专业不科学的方法,比较DevComponents.AdvTree.AdvTree的Add()和AddRange()的性能 1private void butt......