对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中强大的命令行库click入门教程
Dec 26 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python编程把二叉树打印成多行代码
Jan 04 Python
python 日志增量抓取实现方法
Apr 28 Python
Python线性拟合实现函数与用法示例
Dec 13 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python3实现汉语转换为汉语拼音
Jul 08 Python
Python设计密码强度校验程序
Jul 30 Python
python爬取网易云音乐热歌榜实例代码
Aug 07 Python
Python图像处理之图像拼接
Apr 28 Python
Python3 如何开启自带http服务
May 18 Python
解决numpy和torch数据类型转化的问题
May 23 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 过滤器实现代码
2010/08/09 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
destoon设置自定义搜索的方法
2014/06/21 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
微信小程序实现点击空白隐藏的方法示例
2019/08/13 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python抓取京东图书评论数据
2014/08/31 Python
解析Python中的异常处理
2015/04/28 Python
Python中生成器和迭代器的区别详解
2018/02/10 Python
python实现猜数字游戏
2020/03/25 Python
学Python 3的理由和必要性
2019/11/19 Python
python获取引用对象的个数方式
2019/12/20 Python
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
C语言如何决定使用那种整数类型
2016/11/26 面试题
大学新生军训个人的自我评价
2013/10/03 职场文书
员工培训心得体会
2013/12/30 职场文书
领班岗位职责范文
2014/02/06 职场文书
2014年会计个人工作总结
2014/11/24 职场文书
公司人事任命通知
2015/04/20 职场文书
Jupyter Notebook 如何修改字体和大小以及更改字体样式
2021/06/03 Python
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang