QT TabWidget设置选项卡
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设置选项卡相关推荐
- Qt tabwidget 标签页设置tabbar标题,tabwidget设置透明色
1.使用paintevent事件对窗口进行背景设置,背景如下图所示. 2.将tabwidget拖动进ui窗口中,编译运行效果如下,tabwidget会将背景图给遮挡,需要将tabwidget设置为透明 ...
- qt QTabWidget双击选项卡修改选项卡名字
思路:双击发出信号,显示创建好的QLineEdit输入名字,输入完成发出信号,获取QLineEdit的字符给选项卡改名字.由于不想重写QTabWidget,所以主要问题是如何确定QLineEdit的位 ...
- [JAVA] java仿windows 字体设置选项卡
想用java做一个像windows里一样的txt编辑软件,涉及到字体设置选项卡,在网上找了很久都没找到,就生气啦自己写一个,现在贴这里分享一下,下次再遇到这样的问题就不用自己亲自打代码啦! 1 pac ...
- PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
通过 alignment 设置,展开后可以设置水平方向或垂直方向的对齐方式. PyQt5 设置文本对齐方法: self.label.setAlignment(QtCore.Qt.AlignRight| ...
- PyQt5 技术篇-设置输入框的placeholder方法,Qt Designer设置Line Edit、Text Edit编辑框的placeholder
PyQt5设置方法: self.lineEdit.setPlaceholderText("请输入要查询的内容") Qt Designer设置方法: Qt Designer里有个pl ...
- Qt Creator设置Conan
Qt Creator设置Conan 设置Conan 设置Conan Conan是一个C / C ++程序包管理器,可加快将C或C ++库集成到您自己的项目中的速度.它在所有受支持的开发平台上都可用. ...
- Qt Creator设置Meson
Qt Creator设置Meson 设置Meson 添加Meson工具 编辑meson版本说明 代码完成和外部库 当前meson支持限制 设置Meson Meson是一个使用Ninja作为主要后端的开 ...
- Qt Creator设置Nimble
Qt Creator设置Nimble 设置Nimble 搭建开发环境 创建灵活的应用程序 设置Nimble Nimble是Nim编程语言的程序包管理器.它与Nim一起提供,并使用Nim编译器生成Win ...
- Qt Creator设置一个Autotools项目
Qt Creator设置一个Autotools项目 设置一个Autotools项目 设置一个Autotools项目 AutotoolsProjectManager是用于自动工具支持的插件.默认情况下它 ...
最新文章
- redis 基于主从复制的 rce 利用方式
- 启明云端分享 | sigmastar SSD201开发板网口直连PC升级
- egg(87)--egg之redis的安装使用
- TensorFlow升级1.4:Cannot remove entries from nonexistent file \lib\site-pack
- 不全?MySQL数据类型精讲,定点日期枚举文本字符串,json二进制,空间,选择建议,完整详细可收藏
- 往vxe-table添加渲染器怎么添_赚大了!飘窗上装书桌,加扇折叠窗,等于为家里又多添一间房...
- decode语句不能再嵌套_自学C++基础教程【流程控制语句】(for、while 、do while 语句 )...
- 55 FI配置-财务会计-固定资产-主数据-定义4-字符评估组
- 如何修改 SAP 登录界面的文字(事务码SE61)
- MongoDB 教程 | 菜鸟教程
- 计算机网络-自顶向下方法(7th) 第一章 Problems 中英对照
- 设计模式学习笔记(二十:享元模式)
- Android 关于佳博和汉印蓝牙热敏打印机开发,androidstudio入门教程
- 马里兰帕克分校计算机研士排名,2020年马里兰大学帕克分校QS世界排名
- Endless无限循环·数字化趋势
- c语言机票座位预定系统_课内资源 - 基于C语言的飞机票预订系统
- upx壳的一些简单脱壳,望大牛勿喷。
- 求三角形面积 ← 海伦公式
- 燃气热水器出现e4故障是怎么回事?
- 三联动 支持ie6,ie7 省,市,区