对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 socket C/S结构的聊天室应用实现
Nov 30 Python
Python定时执行之Timer用法示例
May 27 Python
python绘制简单折线图代码示例
Dec 19 Python
浅述python中深浅拷贝原理
Sep 18 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
python实现整数的二进制循环移位
Mar 08 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
Django 框架模型操作入门教程
Nov 05 Python
python实现最速下降法
Mar 24 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
Python socket服务常用操作代码实例
Jun 22 Python
python 简单的调用有道翻译
Nov 25 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
一些星际专用术语解释
2020/03/04 星际争霸
PHP入门速成教程
2007/03/19 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
PHPCMS的使用小结
2010/09/20 PHP
PHP安全防范技巧分享
2011/11/03 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
php自动加载代码实例详解
2021/02/26 PHP
node.js中的require使用详解
2014/12/15 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
详解如何在vue项目中引入elementUI组件
2018/02/11 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
Python实现的手机号归属地相关信息查询功能示例
2017/06/08 Python
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python 实现一行输入多个值的方法
2018/04/21 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Python3实现建造者模式的示例代码
2020/06/28 Python
python 实现波浪滤镜特效
2020/12/02 Python
python音频处理的示例详解
2020/12/23 Python
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
实习生自荐信范文
2013/11/13 职场文书
美术教师自我鉴定
2014/02/12 职场文书
先进班集体事迹材料
2014/12/25 职场文书
泰山导游词
2015/02/02 职场文书
茶楼服务员岗位职责
2015/02/09 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书