对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编写一个简单的FUSE文件系统的教程
Apr 02 Python
python将字符串转换成数组的方法
Apr 29 Python
21行Python代码实现拼写检查器
Jan 25 Python
Python探索之自定义实现线程池
Oct 27 Python
Python matplotlib绘图可视化知识点整理(小结)
Mar 16 Python
对python csv模块配置分隔符和引用符详解
Dec 12 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
python实现抖音点赞功能
Apr 07 Python
对django layer弹窗组件的使用详解
Aug 31 Python
python定义类的简单用法
Jul 24 Python
Python实现打乒乓小游戏
Sep 25 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开启安全模式后禁用的函数集合
2011/06/26 PHP
如何利用PHP执行.SQL文件
2013/07/05 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
关于JavaScript的变量的数据类型的判断方法
2015/08/14 Javascript
jquery实现两边飘浮可关闭的对联广告
2015/11/27 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
Vue.js 2.0窥探之Virtual DOM到底是什么?
2017/02/10 Javascript
深究AngularJS中ng-drag、ng-drop的用法
2017/06/12 Javascript
6行代码实现微信小程序页面返回顶部效果
2018/12/28 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
[02:28]DOTA2 2015国际邀请赛中国区预选赛首日现场百态
2015/05/26 DOTA
python处理html转义字符的方法详解
2016/07/01 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
python统计mysql数据量变化并调用接口告警的示例代码
2020/09/21 Python
印度购物网站:TATA CLiQ
2017/11/23 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
电子商务个人自荐信
2013/12/12 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
公司投资建议书
2014/05/16 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python