QTabWidget常用样式设置

本文介绍了如何使用Qt中的QTabWidget控件进行界面美化,包括设置字体、调整尺寸、定制选中与未选中标签的样式、实现标签居中显示、鼠标悬停效果以及去除widget边框等。通过示例代码和实际效果对比,展示了QTabWidget在界面设计中的灵活性。
摘要由CSDN通过智能技术生成

1 前言

个人使用qt,感觉QTabwidget是个非常好用的控件,但有时候总是感觉其tab样式不好控制或说不够灵活,从而导致放弃使用该控件。比如说,标签横向显示的时候,文字随之也横着显示了,这样还需要指定自定义样式,继承QProxyStyle类并重写drawControl虚函数。
然而这样过于麻烦,关于软件主菜单不同的界面切换,个人还是比较喜欢按键组合+STackedWidget控件。
对于一般的小界面来说,QTabWidget其实完全满足你的使用要求,所以本文主要简述QTabwidget样式的常用使用方法,配合标签背景图片,可以使你的tabwidget界面得到极大的美化。

2 基本样式设置

#基本的设置
QTabBar::tab{
	font: 75 12pt "Arial";		#设置字体
	width:84px;					#设置宽度
	height:30; 					#设置高度
	margin-top:5px; 			#设置边距
	margin-right:1px;
	margin-left:1px;
	margin-bottom:0px;
}

3 修改选中及未选中样式

被选中或未被选中的tab标签(标签可分类,最左侧、最右侧、中间),可改变标签颜色及背景图片,具体的内容看下面注释。

#最左边标签未选中时显示(因为需要左边打圆角,所以和其他背景图片不一样,注意字体颜色)
QTabBar::tab:first:!selected {
	color:#000000;
	border-image: url(:/common/images/common/左_normal.png);
}
#最左边标签被选中
QTabBar::tab:first:selected {
	color:#FFFFFF;
	border-image: url(:/common/images/common/左_pressed.png);
}
#最右边标签未选中时显示(因为需要右边打圆角,所以和其他背景图片不一样)
QTabBar::tab:last:!selected {
	color:#000000;
	border-image: url(:/common/images/common/右_normal.png);
}
#最右边标签被选中
QTabBar::tab:last:selected {
	color:#FFFFFF;
	border-image: url(:/common/images/common/右_pressed.png);
}
#中间的标签未被选择的显示
QTabBar::tab:!selected {
	color:#000000;
	border-image: url(:/common/images/common/中_normal.png);
}
#中间标签选中显示的图片
QTabBar::tab:selected {
	color:#FFFFFF;
	border-image: url(:/common/images/common/中_pressed.png);
}

实现效果如下:
在这里插入图片描述

4 tab标签居中显示

QTabWidget::tab-bar { 
	alignment: center; 
} 

效果如下:(左边为原来样式,右边为居中后的样式)
在这里插入图片描述

5 鼠标停留tab标签的效果

鼠标放在标签上,可设置标签颜色或者背景图片

QTabBar::tab:hover{
	background:rgb(255, 255, 255, 100);
}

6 去掉tabwidget的widget边框

QTabWidget::pane{
	border:none;
}

效果对比如下:(上图为原来效果,下图为去掉边框后效果)
对比图

  • 39
    点赞
  • 238
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
QTabWidgetQt的一个控件,用于显示多个选项卡,可以通过设置样式来自定义选项卡的外观。 以下是一个简单的示例,演示如何设置QTabWidget样式: ```python from PyQt5.QtWidgets import QApplication, QTabWidget, QWidget, QVBoxLayout from PyQt5.QtGui import QColor, QPalette app = QApplication([]) tab_widget = QTabWidget() # 创建三个选项卡 tab1 = QWidget() tab2 = QWidget() tab3 = QWidget() # 将选项卡添加到QTabWidget tab_widget.addTab(tab1, "Tab 1") tab_widget.addTab(tab2, "Tab 2") tab_widget.addTab(tab3, "Tab 3") # 设置QTabWidget样式 style_sheet = """ QTabWidget::tab-bar { alignment: center; } QTabBar::tab { background-color: #777; color: white; height: 30px; width: 100px; } QTabBar::tab:selected { background-color: #fff; color: black; } """ tab_widget.setStyleSheet(style_sheet) # 显示QTabWidget tab_widget.show() app.exec_() ``` 这个例子,我们创建了一个QTabWidget,并添加了三个选项卡。然后,我们使用样式设置QTabWidget样式。在样式,我们使用了几个关键字来设置不同的部分: - `QTabWidget::tab-bar`:用于设置选项卡的整个容器。 - `QTabBar::tab`:用于设置每个选项卡的样式。 - `QTabBar::tab:selected`:用于设置的选项卡的样式。 在这个例子,我们设置选项卡的背景色为灰色,文字颜色为白色,高度为30像素,宽度为100像素。当选项卡被选时,我们将背景色设置为白色,文字颜色设置为黑色。 通过设置QTabWidget样式,我们可以自定义选项卡的外观,以便更好地适应我们的应用程序。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值