对pyqt5中QTabWidget的相关操作详解


Posted in Python onJune 21, 2019

首先,下面贴上designer处理的界面文件(转换成py后的):

# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'TabWidget.ui'
#
# Created by: PyQt5 UI code generator 5.12.1
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
 
 
class Ui_MainWindow(object):
  def setupUi(self, MainWindow):
    MainWindow.setObjectName("MainWindow")
    MainWindow.resize(800, 600)
    self.centralwidget = QtWidgets.QWidget(MainWindow)
    self.centralwidget.setObjectName("centralwidget")
    self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
    self.tabWidget.setGeometry(QtCore.QRect(110, 60, 521, 411))
    self.tabWidget.setObjectName("tabWidget")
    self.tab = QtWidgets.QWidget()
    self.tab.setObjectName("tab")
    self.tabWidget.addTab(self.tab, "")
    self.tab_2 = QtWidgets.QWidget()
    self.tab_2.setObjectName("tab_2")
    self.tabWidget.addTab(self.tab_2, "")
    MainWindow.setCentralWidget(self.centralwidget)
    self.menubar = QtWidgets.QMenuBar(MainWindow)
    self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
    self.menubar.setObjectName("menubar")
    MainWindow.setMenuBar(self.menubar)
    self.statusbar = QtWidgets.QStatusBar(MainWindow)
    self.statusbar.setObjectName("statusbar")
    MainWindow.setStatusBar(self.statusbar)
 
    self.retranslateUi(MainWindow)
    self.tabWidget.setCurrentIndex(0)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
  def retranslateUi(self, MainWindow):
    _translate = QtCore.QCoreApplication.translate
    MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Tab 1"))
    self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Tab 2"))

然后,开始处理这个控件:

1、如何将控件最上面的小tab变成透明的?

# -*- coding: utf-8 -*-
 
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from TabWidget import Ui_MainWindow
 
 
class ChangeTabColor(Ui_MainWindow, QMainWindow):
 
  def __init__(self):
    super(ChangeTabColor, self).__init__()
    self.setupUi(self)
    self.setFixedSize(self.width(), self.height())
    self.tabWidget.setTabsClosable(True)
    str = "QTabBar::tab{background-color:rbg(255,255,255,0);}"
    self.tabWidget.setStyleSheet(str)
 
 
def ui_main():
  app = QApplication(sys.argv)
  w = ChangeTabColor()
  w.show()
  sys.exit(app.exec_())
 
 
if __name__ == '__main__':
  ui_main()

其中,下面这两句话是将控件的上面的小tab变成透明的关键。

str = "QTabBar::tab{background-color:rbg(255,255,255,0);}"
self.tabWidget.setStyleSheet(str)

对pyqt5中QTabWidget的相关操作详解

2、如何在选中小tab的时候突出选中的部分(改变颜色)?

还是上面的代码不变,其中str部分加上点内容,改成如下语句:

str = "QTabBar::tab{background-color:rbg(255,255,255,0);}" + \
   "QTabBar::tab:selected{color:red;background-color:rbg(255,200,255);} "

对pyqt5中QTabWidget的相关操作详解

3、如何处理小tab的点击事件?

在上面的代码中加入一些语句即可实现。

def __init__(self):
    super(ChangeTabColor, self).__init__()
    self.setupUi(self)
    self.setFixedSize(self.width(), self.height())
    self.tabWidget.setTabsClosable(True)
    str = "QTabBar::tab{background-color:rbg(255,255,255,0);}" + \
       "QTabBar::tab:selected{color:red;background-color:rbg(255,200,255);} "
    self.tabWidget.setStyleSheet(str)
    self.tabWidget.currentChanged.connect(self.slot_small_tab)
 
  def slot_small_tab(self):
    if self.tabWidget.currentIndex() == 0:
      print('666')
    elif self.tabWidget.currentIndex() == 1:
      print('222')
    else:
      pass

未完待续。。。

以上这篇对pyqt5中QTabWidget的相关操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python密码错误三次锁定(实例讲解)
Nov 14 Python
django静态文件加载的方法
May 20 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python中的延迟绑定原理详解
Oct 11 Python
python返回数组的索引实例
Nov 28 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
python数据爬下来保存的位置
Feb 17 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
python 实现图片裁剪小工具
Feb 02 Python
python实现得到当前登录用户信息的方法
Jun 21 #Python
python-django中的APPEND_SLASH实现方法
Jun 21 #Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 #Python
pyqt5与matplotlib的完美结合实例
Jun 21 #Python
django框架防止XSS注入的方法分析
Jun 21 #Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 #Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 #Python
You might like
php设计模式 Observer(观察者模式)
2011/06/26 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
js form action动态修改方法
2008/11/04 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
2015/07/03 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
javascript如何定义对象数组
2016/06/07 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
vue-better-scroll 的使用实例代码详解
2018/12/03 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
基于python 字符编码的理解
2017/09/02 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
Python实现多属性排序的方法
2018/12/05 Python
Python制作exe文件简单流程
2019/01/24 Python
python实现抖音点赞功能
2019/04/07 Python
PyCharm 配置远程python解释器和在本地修改服务器代码
2019/07/23 Python
使用CSS3来制作消息提醒框
2015/07/12 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
高中自我评价分享
2013/12/05 职场文书
大一新生军训时的自我评价分享
2013/12/05 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
建筑工程管理专业自荐信范文
2013/12/28 职场文书
新学期教师寄语
2014/04/02 职场文书
教师个人学习总结
2015/02/11 职场文书
项目合作意向书
2015/05/08 职场文书