对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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
编程语言Python的发展史
Sep 26 Python
python使用socket进行简单网络连接的方法
Apr 29 Python
pyspark 读取csv文件创建DataFrame的两种方法
Jun 07 Python
使用Python来开发微信功能
Jun 13 Python
利用python画出折线图
Jul 26 Python
Python multiprocessing多进程原理与应用示例
Feb 28 Python
python画双y轴图像的示例代码
Jul 07 Python
使用Python实现 学生学籍管理系统
Nov 26 Python
Python基于内置库pytesseract实现图片验证码识别功能
Feb 24 Python
解决Keras 中加入lambda层无法正常载入模型问题
Jun 16 Python
Python -m参数原理及使用方法解析
Aug 21 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执行速度全攻略(上)
2006/10/09 PHP
windows xp下安装pear
2006/12/02 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
用javascript实现给图片加链接
2007/08/15 Javascript
JavaScript效率调优经验
2009/06/04 Javascript
jquery 利用show和hidden实现级联菜单示例代码
2013/08/09 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
Angular4.0动画操作实例详解
2019/05/10 Javascript
监控微信小程序中的慢HTTP请求过程详解
2019/07/05 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
python学习 流程控制语句详解
2016/06/01 Python
Python开发的HTTP库requests详解
2017/08/29 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
2018/03/14 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
python实现字符串和字典的转换
2018/09/29 Python
Keras使用tensorboard显示训练过程的实例
2020/02/15 Python
关于Python 中的时间处理包datetime和arrow的方法详解
2020/03/19 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
keras中的History对象用法
2020/06/19 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
波兰在线儿童和婴儿用品零售商:pinkorblue
2019/06/29 全球购物
中专生的个人自我评价
2013/12/11 职场文书
借款协议书范本
2014/04/22 职场文书
关于旅游的活动方案
2014/08/15 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
民主评议党员自我评价材料
2014/09/18 职场文书
考试作弊检讨书
2014/10/21 职场文书
六年级上册《闻官军收河南河北》的教学设计
2019/11/15 职场文书
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js