对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 相关文章推荐
Python3简单实例计算同花的概率代码
Dec 06 Python
Python设计模式之代理模式简单示例
Jan 09 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
Python实现合并两个有序链表的方法示例
Jan 31 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
Pycharm创建项目时如何自动添加头部信息
Nov 14 Python
Django-migrate报错问题解决方案
Apr 21 Python
Pycharm快捷键配置详细整理
Oct 13 Python
python字典与json转换的方法总结
Dec 28 Python
pandas 操作 Excel操作总结
Mar 31 Python
python实现手机推送 代码也就10行左右
Apr 12 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 APC缓存配置、使用详解
2014/03/06 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP缩略图生成和图片水印制作
2017/01/07 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
jquery队列函数用法实例
2014/12/16 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
简单了解JavaScript中的执行上下文和堆栈
2019/06/24 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
Python实现备份文件实例
2014/09/16 Python
解决python 输出是省略号的问题
2018/04/19 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
canvas如何实现多张图片编辑的图片编辑器
2020/03/10 HTML / CSS
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
介绍下static、final、abstract区别
2015/01/30 面试题
十岁生日同学答谢词
2014/01/19 职场文书
安全生产先进个人材料
2014/02/06 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python