对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调用zxing库生成二维码图片详解
Jan 10 Python
Windows下PyCharm安装图文教程
Aug 27 Python
python读取各种文件数据方法解析
Dec 29 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
django云端留言板实例详解
Jul 22 Python
django和vue实现数据交互的方法
Aug 21 Python
如何获取Python简单for循环索引
Nov 21 Python
python装饰器使用实例详解
Dec 14 Python
flask框架url与重定向操作实例详解
Jan 25 Python
Python 使用office365邮箱的示例
Oct 29 Python
python 批量将中文名转换为拼音
Feb 07 Python
python内置模块之上下文管理contextlib
Jun 14 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表单转换textarea换行符的方法
2010/09/10 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
jquery select选中的一个小问题
2009/10/11 Javascript
jquery 笔记 事件
2011/11/02 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
使用Javascript简单实现图片无缝滚动
2014/12/05 Javascript
jquery通过load获取文件的内容并跳到锚点的方法
2015/01/29 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
jQuery控制DIV层实现由大到小,由远及近动画变化效果
2015/10/09 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
JS平滑无缝滚动效果的实现代码
2016/05/06 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python实现单词翻译功能
2017/06/06 Python
机器学习10大经典算法详解
2017/12/07 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
2020/03/25 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
HTML5实现移动端点击翻牌功能
2020/10/23 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
幼教个人求职信范文
2013/12/02 职场文书
医学实习生自我鉴定
2013/12/12 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
2014年公司植树节活动方案
2014/03/04 职场文书
数据保密承诺书
2014/06/03 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers