对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计算已经过去多少个周末的方法
Jul 25 Python
5种Python单例模式的实现方式
Jan 14 Python
Python读取一个目录下所有目录和文件的方法
Jul 15 Python
python中nan与inf转为特定数字方法示例
May 11 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
python3.5安装python3-tk详解
Apr 26 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
python 进程 进程池 进程间通信实现解析
Aug 23 Python
Python3和pyqt5实现控件数据动态显示方式
Dec 13 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
python 通过使用Yolact训练数据集
Apr 06 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下载远程文件类(支持断点续传)
2008/11/14 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php若干单维数组遍历方法的比较
2011/09/20 PHP
PHP获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
[01:15:15]VG VS EG Supermajor小组赛B组胜者组第一轮 BO3第二场 6.2
2018/06/03 DOTA
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
浅析Python中的for 循环
2016/06/09 Python
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
python增加图像对比度的方法
2019/07/12 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
门卫人员岗位职责
2013/12/24 职场文书
我的求职计划书
2014/01/10 职场文书
企业元宵节主持词
2014/03/25 职场文书
《爱如茉莉》教后反思
2014/04/12 职场文书
大学生创业事迹材料
2014/12/30 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
2016年优秀党员教师先进事迹材料
2016/02/29 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript