Python hosting : Host, run, and code Python in the cloud!
In this tutorial, you’ll dive deep into using tabs in PyQt5 . After providing a concise code demonstration, we will break down each section, offering a comprehensive understanding of how the QTabWidget works in PyQt5. This widget allows for the inclusion of tabs (QWidgets) that can feature various widgets like labels, buttons, images, and more.
Related course:
PyQt5 Tabs Demonstration: Here’s a full example of how to implement tabs using PyQt5 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 import sysfrom PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayoutfrom PyQt5.QtGui import QIconfrom PyQt5.QtCore import pyqtSlotclass App (QMainWindow ): def __init__ (self ): super ().__init__() self.title = 'PyQt5 tabs - pythonspot.com' 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.table_widget = MyTableWidget(self) self.setCentralWidget(self.table_widget) self.show() class MyTableWidget (QWidget ): def __init__ (self, parent ): super (QWidget, self).__init__(parent) self.layout = QVBoxLayout(self) self.tabs = QTabWidget() self.tab1 = QWidget() self.tab2 = QWidget() self.tabs.resize(300 ,200 ) self.tabs.addTab(self.tab1,"Tab 1" ) self.tabs.addTab(self.tab2,"Tab 2" ) self.tab1.layout = QVBoxLayout(self) self.pushButton1 = QPushButton("PyQt5 button" ) self.tab1.layout.addWidget(self.pushButton1) self.tab1.setLayout(self.tab1.layout) self.layout.addWidget(self.tabs) self.setLayout(self.layout) @pyqtSlot() def on_click (self ): print ("\n" ) for currentQTableWidgetItem in self.tableWidget.selectedItems(): print (currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text()) if __name__ == '__main__' : app = QApplication(sys.argv) ex = App() sys.exit(app.exec_())
Deep Dive Explanation:
If you’re looking to integrate a table into a window, start by creating a new class, which is done as follows:
1 class MyTableWidget (QWidget )
The tab screen initialization is achieved by creating a QTabWidget and designating two QWidgets for the tabs:
1 2 3 4 self.tabs = QTabWidget() self.tab1 = QWidget() self.tab2 = QWidget() self.tabs.resize(300 ,200 )
These tabs can then be added to the tab widget:
1 2 self.tabs.addTab(self.tab1,"Tab 1" ) self.tabs.addTab(self.tab2,"Tab 2" )
Content for a specific tab is created as follows:
1 2 3 4 self.tab1.layout = QVBoxLayout(self) self.pushButton1 = QPushButton("PyQt5 button" ) self.tab1.layout.addWidget(self.pushButton1) self.tab1.setLayout(self.tab1.layout)
To conclude, integrate the tabs into the widget:
1 2 self.layout.addWidget(self.tabs) self.setLayout(self.layout)
And, don’t overlook integrating your custom tab widget into the main window:
1 2 self.table_widget = MyTableWidget(self) self.setCentralWidget(self.table_widget)
Download PyQT5 Examples
Navigate through the PyQt5 guide: Previous | Next
Leave a Reply: