Thursday, December 26, 2024
Google search engine
HomeLanguagesPyQt5 – QTabWidget

PyQt5 – QTabWidget

In this article, you will learn how to add and work with a tab window in your PyQt5 application. Each tab has a different layout and page under a selected tab is displayed, while keeping the others hidden. To select a tab, you need to click the desired tab from the tab bar which is provided by this QTabWidget.

The below article describes the process of creating a sample application that has three tabs and each tab has a different layout.
Example:




import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget, QVBoxLayout, QLabel
  
# Creating the main window
class App(QMainWindow):
    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 - QTabWidget'
        self.left = 0
        self.top = 0
        self.width = 300
        self.height = 200
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)
  
        self.tab_widget = MyTabWidget(self)
        self.setCentralWidget(self.tab_widget)
  
        self.show()
  
# Creating tab widgets
class MyTabWidget(QWidget):
    def __init__(self, parent):
        super(QWidget, self).__init__(parent)
        self.layout = QVBoxLayout(self)
  
        # Initialize tab screen
        self.tabs = QTabWidget()
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()
        self.tabs.resize(300, 200)
  
        # Add tabs
        self.tabs.addTab(self.tab1, "Geeks")
        self.tabs.addTab(self.tab2, "For")
        self.tabs.addTab(self.tab3, "Geeks")
  
        # Create first tab
        self.tab1.layout = QVBoxLayout(self)
        self.l = QLabel()
        self.l.setText("This is the first tab")
        self.tab1.layout.addWidget(self.l)
        self.tab1.setLayout(self.tab1.layout)
  
        # Add tabs to widget
        self.layout.addWidget(self.tabs)
        self.setLayout(self.layout)
  
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())


Output:

If you want to add an icon on any tab. You just need to replace

self.tabs.addTab(self.tab1, "Geeks")

with

self.tabs.addTab(self.tab1, QIcon("Location of the icon"), ('Geeks')) 

and import the QIcon library from PyQt5.QtWidgets.

RELATED ARTICLES

Most Popular

Recent Comments