对pyqt5中QTabWidget的相关操作详解
Python  /  管理员 发布于 5年前   1245
首先,下面贴上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 sysfrom PyQt5.QtWidgets import QApplication, QMainWindowfrom 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)
2、如何在选中小tab的时候突出选中的部分(改变颜色)?
还是上面的代码不变,其中str部分加上点内容,改成如下语句:
str = "QTabBar::tab{background-color:rbg(255,255,255,0);}" + \ "QTabBar::tab:selected{color:red;background-color:rbg(255,200,255);} "
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的相关操作详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号