QT TabWidget设置选项卡

实现效果

在选中右侧指定标签时,该标签背景显示浅色背景图片,字体图片为深色;其他标签背景为灰色背景图片,字体图片也显示深灰色。

标签的添加与删除

1、添加标签

2、删除标签

移动标签

通过属性栏设置标签的位置

设置标签的大小与不同状态的背景

修改样式表设置标签的长宽,设置标签在被选中与未选中时显示不同的背景

代码片:

QTabBar::tab{width:90}
QTabBar::tab{height:142}QTabBar::tab:selected{background-image:url(/home/jenny/res/MainTabSel.png)}
QTabBar::tab:!selected{background-image: url(/home/jenny/res/MainTabUnsel.png)}

设置标签图片

使用addPixmap()函数添加图片。
此时如图所示显示一个小图标,需要将图标放大。

设置图标大小

使用setIconSize()函数设置图片的大小。
注意:需要通过QSize设置长宽
此时如图所示显示的图标变为指定大小的图片,但是图片为横向,需要将图片旋转。

代码片:

    QSize  size; size.setHeight(142);size.setWidth(90);ui->tabWidget->setIconSize(size);

设置图片旋转

使用QMatrix类中的rotate()函数旋转图片。
此时如图所示显示一个小图标,需要将图标放大。

代码片:

   QMatrix matrix;matrix.rotate(270);      //旋转270度

MainWindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>namespace Ui {class MainWindow;
}
class MainWindow : public QMainWindow
{Q_OBJECTpublic:explicit MainWindow(QWidget *parent = 0);~MainWindow();
private slots:void on_tabWidget_tabBarClicked(int index);
private:Ui::MainWindow *ui;
};#endif // MAINWINDOW_H

MainWindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QTabBar"
MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)
{ui->setupUi(this);ui->tabWidget->setCurrentIndex(0);//设置选中第一个标签QIcon icon0A,icon1B,icon2B,icon3B;QSize  size;QMatrix matrix;size.setHeight(142);size.setWidth(90);matrix.rotate(270);      //旋转270度ui->tabWidget->setIconSize(size);icon0A.addPixmap(QPixmap("/home/jenny/res/MainTab0A.png").transformed(matrix,Qt::SmoothTransformation));//改变-平滑变换ui->tabWidget->setTabIcon(0,icon0A);icon1B.addPixmap(QPixmap("/home/jenny/res/MainTab1B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(1,icon1B);icon2B.addPixmap(QPixmap("/home/jenny/res/MainTab2B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(2,icon2B);icon3B.addPixmap(QPixmap("/home/jenny/res/MainTab3B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(3,icon3B);ui->tabWidget->setFocusPolicy(Qt::NoFocus);//实现点击无焦点,去除虚线框}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_tabWidget_tabBarClicked(int index)
{QIcon icon0A,icon1A,icon2A,icon3A;QIcon icon0B,icon1B,icon2B,icon3B;QSize  size;QMatrix matrix;size.setHeight(150);size.setWidth(100);matrix.rotate(270);ui->tabWidget->setIconSize(size);if(index==0){icon0A.addPixmap(QPixmap("/home/jenny/res/MainTab0A.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(0,icon0A);icon1B.addPixmap(QPixmap("/home/jenny/res/MainTab1B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(1,icon1B);icon2B.addPixmap(QPixmap("/home/jenny/res/MainTab2B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(2,icon2B);icon3B.addPixmap(QPixmap("/home/jenny/res/MainTab3B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(3,icon3B);}if(index==1){icon1A.addPixmap(QPixmap("/home/jenny/res/MainTab1A.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(1,icon1A);icon0B.addPixmap(QPixmap("/home/jenny/res/MainTab0B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(0,icon0B);icon2B.addPixmap(QPixmap("/home/jenny/res/MainTab2B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(2,icon2B);icon3B.addPixmap(QPixmap("/home/jenny/res/MainTab3B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(3,icon3B);}if(index==2){icon2A.addPixmap(QPixmap("/home/jenny/res/MainTab2A.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(2,icon2A);icon0B.addPixmap(QPixmap("/home/jenny/res/MainTab0B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(0,icon0B);icon1B.addPixmap(QPixmap("/home/jenny/res/MainTab1B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(1,icon1B);icon3B.addPixmap(QPixmap("/home/jenny/res/MainTab3B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(3,icon3B);}if(index==3){icon3A.addPixmap(QPixmap("/home/jenny/res/MainTab3A.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(3,icon3A);icon0B.addPixmap(QPixmap("/home/jenny/res/MainTab0B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(0,icon0B);icon1B.addPixmap(QPixmap("/home/jenny/res/MainTab1B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(1,icon1B);icon2B.addPixmap(QPixmap("/home/jenny/res/MainTab2B.png").transformed(matrix,Qt::SmoothTransformation));ui->tabWidget->setTabIcon(2,icon2B);}
}

QT TabWidget设置选项卡相关推荐

  1. Qt tabwidget 标签页设置tabbar标题,tabwidget设置透明色

    1.使用paintevent事件对窗口进行背景设置,背景如下图所示. 2.将tabwidget拖动进ui窗口中,编译运行效果如下,tabwidget会将背景图给遮挡,需要将tabwidget设置为透明 ...

  2. qt QTabWidget双击选项卡修改选项卡名字

    思路:双击发出信号,显示创建好的QLineEdit输入名字,输入完成发出信号,获取QLineEdit的字符给选项卡改名字.由于不想重写QTabWidget,所以主要问题是如何确定QLineEdit的位 ...

  3. [JAVA] java仿windows 字体设置选项卡

    想用java做一个像windows里一样的txt编辑软件,涉及到字体设置选项卡,在网上找了很久都没找到,就生气啦自己写一个,现在贴这里分享一下,下次再遇到这样的问题就不用自己亲自打代码啦! 1 pac ...

  4. PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。

    通过 alignment 设置,展开后可以设置水平方向或垂直方向的对齐方式. PyQt5 设置文本对齐方法: self.label.setAlignment(QtCore.Qt.AlignRight| ...

  5. PyQt5 技术篇-设置输入框的placeholder方法,Qt Designer设置Line Edit、Text Edit编辑框的placeholder

    PyQt5设置方法: self.lineEdit.setPlaceholderText("请输入要查询的内容") Qt Designer设置方法: Qt Designer里有个pl ...

  6. Qt Creator设置Conan

    Qt Creator设置Conan 设置Conan 设置Conan Conan是一个C / C ++程序包管理器,可加快将C或C ++库集成到您自己的项目中的速度.它在所有受支持的开发平台上都可用. ...

  7. Qt Creator设置Meson

    Qt Creator设置Meson 设置Meson 添加Meson工具 编辑meson版本说明 代码完成和外部库 当前meson支持限制 设置Meson Meson是一个使用Ninja作为主要后端的开 ...

  8. Qt Creator设置Nimble

    Qt Creator设置Nimble 设置Nimble 搭建开发环境 创建灵活的应用程序 设置Nimble Nimble是Nim编程语言的程序包管理器.它与Nim一起提供,并使用Nim编译器生成Win ...

  9. Qt Creator设置一个Autotools项目

    Qt Creator设置一个Autotools项目 设置一个Autotools项目 设置一个Autotools项目 AutotoolsProjectManager是用于自动工具支持的插件.默认情况下它 ...

最新文章

  1. redis 基于主从复制的 rce 利用方式
  2. 启明云端分享 | sigmastar SSD201开发板网口直连PC升级
  3. egg(87)--egg之redis的安装使用
  4. TensorFlow升级1.4:Cannot remove entries from nonexistent file \lib\site-pack
  5. 不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏
  6. 往vxe-table添加渲染器怎么添_赚大了!飘窗上装书桌,加扇折叠窗,等于为家里又多添一间房...
  7. decode语句不能再嵌套_自学C++基础教程【流程控制语句】(for、while 、do while 语句 )...
  8. 55 FI配置-财务会计-固定资产-主数据-定义4-字符评估组
  9. 如何修改 SAP 登录界面的文字(事务码SE61)
  10. MongoDB 教程 | 菜鸟教程
  11. 计算机网络-自顶向下方法(7th) 第一章 Problems 中英对照
  12. 设计模式学习笔记(二十:享元模式)
  13. Android 关于佳博和汉印蓝牙热敏打印机开发,androidstudio入门教程
  14. 马里兰帕克分校计算机研士排名,2020年马里兰大学帕克分校QS世界排名
  15. Endless无限循环·数字化趋势
  16. c语言机票座位预定系统_课内资源 - 基于C语言的飞机票预订系统
  17. upx壳的一些简单脱壳,望大牛勿喷。
  18. 求三角形面积 ← 海伦公式
  19. 燃气热水器出现e4故障是怎么回事?
  20. 三联动 支持ie6,ie7 省,市,区

热门文章

  1. 小马哥------高仿机 杂牌机常识与刷机救砖心得与技巧
  2. php笔刷怎么安装,ps铅笔工具怎么用
  3. qt-example之animated picture的学习
  4. Android Studio倒入工程错误记录
  5. oepencv中CV_8UC1,CV_8UC2,CV_8UC3等意思
  6. MFC中强制转换总结
  7. 6款上班族手机必备软件,一款网易快要放弃,一款苹果已经下架
  8. 开着房车去旅行,总有一种生活是你所追求!
  9. linux按照日期压缩解压文件
  10. Unity3D之太空大战二