对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 Django(图文)
Nov 04 Python
python 捕获 shell/bash 脚本的输出结果实例
Jan 04 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 Python
Python编程之string相关操作实例详解
Jul 22 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 Python
JAVA SWT事件四种写法实例解析
Jun 05 Python
Python实现列表索引批量删除的5种方法
Nov 16 Python
python爬虫爬取图片的简单代码
Jan 18 Python
python SOCKET编程基础入门
Feb 27 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 Python
Python借助with语句实现代码段只执行有限次
Mar 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实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
javascript 避免闭包引发的问题
2009/03/17 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
详解webpack 多页面/入口支持&公共组件单独打包
2017/06/29 Javascript
Vue实现virtual-dom的原理简析
2017/07/10 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
脚手架vue-cli工程webpack的作用和特点
2018/09/29 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
Vue调用后端java接口的实例代码
2019/10/28 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
九步学会Python装饰器
2015/05/09 Python
django用户登录验证的完整示例代码
2019/07/21 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
巴西手表购物网站:eclock
2019/03/19 全球购物
自考生自我鉴定范文
2013/10/01 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
高中生的自我评价
2014/03/04 职场文书
会议主持词
2014/03/17 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android