对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文件的md5加密方法
Apr 06 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
CentOS6.5设置Django开发环境
Oct 13 Python
Python中表示字符串的三种方法
Sep 06 Python
python生成excel的实例代码
Nov 08 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
pycharm 解除默认unittest模式的方法
Nov 30 Python
Python依赖包整体迁移方法详解
Aug 15 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Django更新models数据库结构步骤
Apr 01 Python
对Pytorch 中的contiguous理解说明
Mar 03 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
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
jquery validator 插件增加日期比较方法
2010/02/21 Javascript
jquery幻灯片插件bxslider样式改进实例
2014/10/15 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jQuery实现表格隔行及滑动,点击时变色的方法【测试可用】
2016/08/20 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
js实现二级导航功能
2017/03/03 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
[02:57]DOTA2英雄基础教程 风行者
2014/01/16 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
django 常用orm操作详解
2017/09/13 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
日本最大美瞳直送网:Morecontact(中文)
2019/04/03 全球购物
财政专业大学生职业生涯规划书
2014/09/17 职场文书
小学生作文批改评语
2014/12/25 职场文书
调解协议书范本
2016/03/21 职场文书
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL
CSS使用SVG实现动态分布的圆环发散路径动画
2022/12/24 HTML / CSS