Pyside6 QtabWidget

news2024/10/5 4:50:25

Pyside6 QtabWidget

  • QtabWidget使用
    • QtabWidget常用方法
    • 设置标签页的标题
      • 程序设置
      • 界面设置
    • 设置当前显示的标签页
      • 程序设置
      • 界面设置
    • 删除标签页
      • 程序设置
      • 界面设置
    • 添加标签页
      • 程序设置
      • 界面设置
    • 例程
      • 界面程序
      • 主程序

QtabWidget是Pyside6中的一个标签页控件,其作用可以是让用户更好划分不同的页面设计功能,将跟功能实现相关的控件都放到同一个标签页中,可以让界面更加简洁美观。更多关于QtabWidget的资料可以参考下面的文档。

https://doc.qt.io/qtforpython-6/PySide6/QtWidgets/QTabWidget.html

QtabWidget使用

QtabWidget常用方法

方法作用
setTabText设置标签页的标题
setCurrentIndex设置当前显示的标签页
removeTab删除标签页
addTab添加标签页
count计算当前有多少个标签页
currentIndex获取当前标签页的索引,索引从0开始
信号作用
currentChanged切换当前页面时触发信号

设置标签页的标题

程序设置

self.ui.tabWidget.setTabText(1,"标签1") # 设置索引为1的标签标题文本

界面设置

点击需要设置标题的标签页
在这里插入图片描述
点击控件->属性编辑器->currentTabText设置标签页的标题
在这里插入图片描述

设置当前显示的标签页

程序设置

self.ui.tabWidget.setCurrentIndex(1)   # 将当前选项卡设置为索引为1的标签

界面设置

直接点击需要显示的标签页的标签即可
在这里插入图片描述

删除标签页

程序设置

self.ui.tabWidget.removeTab(self.ui.tabWidget.currentIndex())

界面设置

鼠标移动到需要删除的标签页上,点击右键按下图步骤删除即可。
在这里插入图片描述

添加标签页

程序设置

self.ui.tabWidget.addTab(self.tab, "Tab " + str(self.ui.tabWidget.count()))

界面设置

鼠标移动到标签页,点击右键按照下图方式添加标签页
在这里插入图片描述

例程

界面程序

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>567</width>
    <height>432</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget">
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <layout class="QVBoxLayout" name="verticalLayout">
      <item>
       <widget class="QTabWidget" name="tabWidget">
        <property name="currentIndex">
         <number>0</number>
        </property>
        <widget class="QWidget" name="tab">
         <attribute name="title">
          <string>Tab 1</string>
         </attribute>
         <widget class="QLabel" name="label">
          <property name="geometry">
           <rect>
            <x>60</x>
            <y>50</y>
            <width>391</width>
            <height>171</height>
           </rect>
          </property>
          <property name="font">
           <font>
            <pointsize>25</pointsize>
           </font>
          </property>
          <property name="text">
           <string>标签页1</string>
          </property>
         </widget>
        </widget>
        <widget class="QWidget" name="tab_2">
         <attribute name="title">
          <string>Tab 2</string>
         </attribute>
         <widget class="QLabel" name="label_2">
          <property name="geometry">
           <rect>
            <x>30</x>
            <y>50</y>
            <width>421</width>
            <height>181</height>
           </rect>
          </property>
          <property name="font">
           <font>
            <pointsize>25</pointsize>
           </font>
          </property>
          <property name="text">
           <string>标签页2</string>
          </property>
         </widget>
        </widget>
        <widget class="QWidget" name="tab_3">
         <attribute name="title">
          <string>Tab 3</string>
         </attribute>
         <widget class="QLabel" name="label_3">
          <property name="geometry">
           <rect>
            <x>60</x>
            <y>70</y>
            <width>431</width>
            <height>131</height>
           </rect>
          </property>
          <property name="font">
           <font>
            <pointsize>25</pointsize>
           </font>
          </property>
          <property name="text">
           <string>标签页3</string>
          </property>
         </widget>
        </widget>
       </widget>
      </item>
     </layout>
    </item>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
       <widget class="QPushButton" name="delete_tab_btn">
        <property name="maximumSize">
         <size>
          <width>200</width>
          <height>16777215</height>
         </size>
        </property>
        <property name="text">
         <string>删除页</string>
        </property>
       </widget>
      </item>
      <item>
       <widget class="QPushButton" name="add_tab_btn">
        <property name="maximumSize">
         <size>
          <width>200</width>
          <height>16777215</height>
         </size>
        </property>
        <property name="text">
         <string>添加页</string>
        </property>
       </widget>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>567</width>
     <height>22</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar"/>
 </widget>
 <resources/>
 <connections/>
</ui>


主程序

# Import Qt libraries
from PySide6.QtWidgets import *
from PySide6.QtCore import QFile,QRect
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
    QFont, QFontDatabase, QGradient, QIcon,
    QImage, QKeySequence, QLinearGradient, QPainter,
    QPalette, QPixmap, QRadialGradient, QTransform)
# Import UI developed in Qt Creator
from TabWidget_ui import Ui_MainWindow  # 导入界面
# Import PseudoSensor
# Import system tools and datetime
import sys
import statistics
import time
from datetime import datetime
import random
# Create and start the Qt application
class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        
        # 设置界面为用户设计的界面
        self.ui = Ui_MainWindow() 
        self.ui.setupUi(self) 
       
        self.ui.tabWidget.currentChanged.connect(self.tabWidgetcurrentChanged)

        self.ui.delete_tab_btn.clicked.connect(self.deletetab)
        self.ui.add_tab_btn.clicked.connect(self.addtab)

        self.ui.tabWidget.setTabText(1,"标签1") # 设置索引为1的标签标题文本
        self.ui.tabWidget.setCurrentIndex(1)   # 将当前选项卡设置为索引为1的标签



    def tabWidgetcurrentChanged(self,index):
        print("current tab index %d" % index) # 打印出选中的标签索引

    def deletetab(self): # 删除标签页
        self.ui.tabWidget.removeTab(self.ui.tabWidget.currentIndex())

    def addtab(self):    # 增加标签页
        self.tab = QWidget()
        self.tab.setObjectName("tab")
   
        # 创建标签
        font = QFont()
        font.setPointSize(25)
        self.label = QLabel(self.tab)
        self.label.setObjectName("label")
        self.label.setGeometry(QRect(30, 50, 421, 181))
        self.label.setFont(font)
        self.label.setText(str(random.uniform(1, 9999999))) # 标签内容设置为随机数

        self.ui.tabWidget.addTab(self.tab, "Tab " + str(self.ui.tabWidget.count()))
    def closeAndExit(self):
        sys.exit()

if __name__ == "__main__":
    app = QApplication(sys.argv) # 初始化QApplication

    # 初始化界面并显示界面
    window = MainWindow() 
    window.show() 

    sys.exit(app.exec())

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis底层源码分析

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理MyBatis底层源码分析 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#x1faf0;&#x1f…

WebDAV之π-Disk派盘 + 元思笔记

元思笔记是一款面向大众的卡片笔记软件,解决了笔记类软件的一个痛点:绝大多数人都很难坚持每天记一点东西。任何笔记工具,不论是纸笔还是电子,能够让人坚持记录就是好工具。 元思笔记是一款基于卢曼卡片盒的移动端卡片笔记软件;隐私优先,本地存储数据且支持云备份;丰富的…

AnyTransition/过渡动画, MatchedGeometryEffect/匹配几何动画效果 的使用

1. AnyTransition 过渡动画效果 1.1 创建过度动画案例 AnyTransitionBootcamp.swift import SwiftUI/// 旋转修饰 View struct RotateViewModifier :ViewModifier{let rotation: Doublefunc body(content: Content) -> some View {content.rotationEffect(Angle(degrees: r…

多目标追踪数据集分享

SportsMOT: A Large Multi-Object Tracking Dataset in Multiple Sports Scenes SportsMOT是一个新的大规模多目标追踪数据集&#xff0c;专注于多样化的体育场景&#xff0c;其中需要跟踪场上的所有运动员。该数据集包括来自篮球、排球和足球等三类体育项目的240个视频序列&am…

RK3568驱动指南|第六篇-平台总线-第52章 注册platform驱动实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

【码银送书第八期】《Python数据挖掘:入门进阶与实用案例分析》

摘要&#xff1a;本案例将主要结合自动售货机的实际情况&#xff0c;对销售的历史数据进行处理&#xff0c;利用pyecharts库、Matplotlib库进行可视化分析&#xff0c;并对未来4周商品的销售额进行预测&#xff0c;从而为企业制定相应的自动售货机市场需求分析及销售建议提供参…

Unity游戏开发客户端面经,六万字面经知识点,一篇就够了

目前这是记录一些被常问的面经&#xff0c;面向初级&#xff0c;总结了大约六万字的常问知识点&#xff0c;有各种大佬的链接可以深入的了解。希望可以帮助正在准备八股的同学们。 C#&#xff1a;Unity游戏开发客户端面经——C#&#xff08;初级&#xff09;_正在奋斗中的小志的…

【css拾遗】粘性布局实现有滚动条的情况下,按钮固定在页面底部展示

效果&#xff1a; 滚动条滚动过程中&#xff0c;按钮的位置位于手机的底部 滚动条滚到底部时&#xff0c;按钮的位置正常 这个position:sticky真的好用&#xff0c;我原先的想法是利用滚动条滚动事件去控制&#xff0c;没想到css就可以解决 <template><view class…

程序员爱写不写注释的智慧

&#x1f935;‍♂️ 个人主页&#xff1a;艾迦洼的个人主页 ✍&#x1f3fb;作者简介&#xff1a;后端程序猿 &#x1f604; 希望大家多多支持&#xff0c;如果文章对你有帮助的话&#xff0c;欢迎 &#x1f4ac;&#x1f44d;&#x1f3fb;&#x1f4c2; 目录 &#x1f44b;程…

数据结构--》连接世界的无限可能—— 图

图作为数据结构中的一种重要概念&#xff0c;扮演着连接世界的纽带。与树和二叉树相比&#xff0c;图更加灵活和多样化&#xff0c;它能够描述各种实际问题中的复杂关系&#xff0c;如社交网络中的人际联系、城市交通中的路线规划以及电子网络中的通信路径等。 无论你是初学者还…

【【萌新的SOC学习之SD卡读写TXT文本实验】】

萌新的SOC学习之SD卡读写TXT文本实验 SD卡 Secure Digital Card SD卡的引脚定义 我们会用的数据脚就这几个 对于我们FPGA 其实更会倾向于选择 SPI的功能 而TF卡相对于SD卡的区别在于 SD卡只有一个电源地 这里相对于原本的SPI多了一个CD引脚 CD信号是相当于一个卡检测…

竞赛选题 深度学习+opencv+python实现车道线检测 - 自动驾驶

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 YOLOV56 数据集处理7 模型训练8 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &am…

光纤激光切割机如何高效的切割铜等高反材料

高反射材料的切割过程往往具有挑战性&#xff0c;对于许多光纤激光切割设备厂商而言都是难以解决的问题。但是作为铜、铝、金等常见的高反射性材料又需要在日常生产中经常进行加工处理。 很多厂家解决的办法之一就是采用相应的辅助气体。在光纤激光切割机切割铜时&#xff0c;辅…

xshell 上传下载文件命令

Windows 和 Linux上传或下载某个文件首先你的 Linux上需要安装安装 lrzsz工具包在Linux 上执行 yum install lrzsz 上传文件&#xff1a; 输入 rz 下载文件&#xff1a;运行命令 sz zcly.tar.gz (zcly.tar.gz)为文件名称

多标签分类论文笔记 | ML-Decoder: Scalable and Versatile Classification Head

个人论文精读笔记&#xff0c;主要是翻译心得&#xff0c;欢迎旁观&#xff0c;如果有兴趣可以在评论区留言&#xff0c;我们一起探讨。 Paper: https://arxiv.org/pdf/2111.12933.pdf Code: https://github.com/Alibaba-MIIL/ML_Decoder 文章目录 0. 摘要1. 介绍2. 方法2.1 Ba…

offer

【录用通知书】 如何判断公司的好坏呢。 注意了&#xff0c;我们软件行业&#xff0c;技术管理类&#xff0c;技术类&#xff0c;产品类 好公司好企业基本都会给你说清楚&#xff0c;一项多少钱&#xff0c;加班多少钱&#xff0c;这样的 像这类公司的薪资结构复杂就要特别…

如何批量导出文件名?

如何批量导出文件名&#xff1f;在电商行业从事工作的一些同事可能经常会遇到这样的问题&#xff1a;需要将产品文件夹中的所有图片或产品名称导出到Excel工作表&#xff0c;在工作表中创建这些名称的超链接&#xff0c;并且可能会为每个产名称的后面填写一些相关信息&#xff…

LeetCode【152】乘积最大子数组

题目&#xff1a; 解析&#xff1a; 理解这个题的过程中&#xff0c;有这样的疑问&#xff1a; -2、0、2、3 子数组最大值是2*3 6&#xff0c;并非dp过程中&#xff0c;从下标0累乘的怎么办&#xff1f;这里不用担心&#xff0c;因为在dp的过程中会逐渐的求Math.max和Math.m…

知识付费小程序的推广与用户增长策略

在知识付费小程序开发完成后&#xff0c;推广和用户增长是关键的成功因素。本文将探讨一些推广策略和用户增长方法&#xff0c;并提供代码示例&#xff0c;帮助您在知识付费小程序中实施这些策略。 1. 社交媒体分享功能 在知识付费小程序中添加社交媒体分享功能&#xff0c;…

多媒体应用设计师 开始

https://www.bilibili.com/video/BV1jv411q7mz/?spm_id_from333.337.search-card.all.click&vd_source25bced4af8c6d5f851758632d0ca8444