1. 코드

from PyQt5.QtWidgets import QWidget, QApplication,QTabWidget,QVBoxLayout
from PyQt5.QtCore import Qt
import sys

class 탭버튼위젯(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        self.tab1 = QWidget() 
        self.tab2 = QWidget()
        self.tab3 = QWidget()

        tabs = QTabWidget()
        
        tabs.addTab(self.tab1,'라이캣')
        tabs.addTab(self.tab2,'파이')
        tabs.addTab(self.tab3,'썬')
        tabs.setTabPosition(1) 
        tabs.setTabShape(1) 

        tabs.tabBarClicked.connect(self.clickedTab)
        vbox = QVBoxLayout()
        vbox.addWidget(tabs)

        self.setLayout(vbox)

        self.setWindowTitle('QTabWidget')
        self.setGeometry(300, 300, 300, 400)
        self.show()

    def clickedTab(self,index): 
        if index == 0: 
            self.tab1.setStyleSheet('image : url(img/weniv-licat.png)')
        elif index == 1:
            self.tab2.setStyleSheet('image : url(img/weniv-pie.png)')
        else:
            self.tab3.setStyleSheet('image : url(img/weniv-sun.png)')

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 탭버튼위젯()
프로그램무한반복.exec_()

2. 상세 내용

탭은 액셀 하단에 있는 Sheet와 같은 역할을 하는 창변환 기능입니다.

def UI초기화(self):
    self.tab1 = QWidget()
    self.tab2 = QWidget()
    self.tab3 = QWidget()

    tabs = QTabWidget()

    tabs.addTab(self.tab1, '라이캣')
    tabs.addTab(self.tab2, '파이')
    tabs.addTab(self.tab3, '썬')
    tabs.setTabPosition(1)
    tabs.setTabShape(1)

    tabs.tabBarClicked.connect(self.clickedTab)
    vbox = QVBoxLayout()
    vbox.addWidget(tabs)
def clickedTab(self, index):
    if index == 0:
        self.tab1.setStyleSheet('image : url(img/weniv-licat.png)')
    elif index == 1:
        self.tab2.setStyleSheet('image : url(img/weniv-pie.png)')
    else:
        self.tab3.setStyleSheet('image : url(img/weniv-sun.png)')

3. 실행 화면