对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分支结构(switch)操作简介
Jan 17 Python
在python中利用opencv简单做图片比对的方法
Jan 24 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
如何为Python终端提供持久性历史记录
Sep 03 Python
Python autoescape标签用法解析
Jan 17 Python
python序列类型种类详解
Feb 26 Python
pyCharm 实现关闭代码检查
Jun 09 Python
python如何爬取网页中的文字
Jul 28 Python
PyTorch 如何自动计算梯度
May 23 Python
OpenCV图像变换之傅里叶变换的一些应用
Jul 26 Python
pytorch中的 .view()函数的用法介绍
Mar 17 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
php中对象引用和复制实例分析
2019/08/14 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
Javascript中valueOf与toString区别浅析
2013/03/19 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
HTML页面定时跳转方法解析(2种任选)
2016/12/22 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
[59:35]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第一场 1月8日
2021/03/11 DOTA
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python 实现二维列表转置
2019/12/02 Python
python opencv肤色检测的实现示例
2020/12/21 Python
python 装饰器重要在哪
2021/02/14 Python
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
银河香水:Galaxy Perfume
2019/03/25 全球购物
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
GC是什么?为什么要有GC?
2013/12/08 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
安全生产检查通报
2014/01/29 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
亲子拓展活动方案
2014/02/20 职场文书
大专学生求职自荐信
2014/07/06 职场文书
反四风个人对照检查材料思想汇报
2014/09/25 职场文书
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js