对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实现LRU算法的2种方法
Jun 24 Python
简单谈谈python中的多进程
Nov 06 Python
python安装Scrapy图文教程
Aug 14 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
解决Tensorflow安装成功,但在导入时报错的问题
Jun 13 Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 Python
python操作日志的封装方法(两种方法)
May 23 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
django xadmin 管理器常用显示设置方式
Mar 11 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获取http请求的头信息实现步骤
2012/12/16 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
php 中的closure用法详解
2017/06/12 PHP
PDO::setAttribute讲解
2019/01/29 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
详解http访问解析流程原理
2017/10/18 Javascript
移动端效果之IndexList详解
2017/10/20 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
JS实现的缓冲运动效果示例
2018/04/30 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
2款Python内存检测工具介绍和使用方法
2014/06/01 Python
python 用opencv调用训练好的模型进行识别的方法
2018/12/07 Python
使用Python计算玩彩票赢钱概率
2019/06/26 Python
Python实现钉钉订阅消息功能
2020/01/14 Python
如何通过Python3和ssl实现加密通信功能
2020/05/09 Python
Python类及获取对象属性方法解析
2020/06/15 Python
python中如何写类
2020/06/29 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
文艺演出策划方案
2014/06/07 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
男方婚礼答谢词
2015/01/20 职场文书
导游词之淮安明祖陵
2019/11/25 职场文书
排查MySQL生产环境索引没有效果
2022/04/11 MySQL