对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和Ruby中each循环引用变量问题(一个隐秘BUG?)
Jun 04 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
在Django中创建第一个静态视图
Jul 15 Python
python读取oracle函数返回值
Jul 18 Python
Python中模块string.py详解
Mar 12 Python
python进阶_浅谈面向对象进阶
Aug 17 Python
python爬取Ajax动态加载网页过程解析
Sep 05 Python
python requests模拟登陆github的实现方法
Dec 26 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
详解Django配置JWT认证方式
May 09 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
使用anaconda安装pytorch的实现步骤
Sep 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
php 获取select下拉列表框的值
2010/05/08 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
JS+CSS实现实用的单击输入框弹出选择框的方法
2015/02/28 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
fetch 使用及如何接收JS传值
2017/11/11 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
vue模块拖拽实现示例代码
2019/03/09 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
从Python的源码浅要剖析Python的内存管理
2015/04/16 Python
浅谈Python的文件类型
2016/05/30 Python
Python坐标线性插值应用实现
2019/11/13 Python
python3 配置logging日志类的操作
2020/04/08 Python
如何使用Pytorch搭建模型
2020/10/26 Python
给排水专业应届生求职信
2013/10/12 职场文书
应用心理学个人求职信范文
2013/12/11 职场文书
初三新学期计划书
2014/05/03 职场文书
服装设计专业求职信
2014/06/16 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
李强优秀员工观后感
2015/06/16 职场文书
现实表现证明材料
2015/06/19 职场文书
2019年鼓励无偿献血倡议书
2019/09/17 职场文书
导游词之张家界
2019/10/31 职场文书
分析SQL窗口函数之聚合窗口函数
2022/04/21 Oracle