PyQt5 – QTabWidget
在这篇文章中,你将学习如何在你的PyQt5应用程序中添加和使用一个标签窗口。每个标签都有不同的布局,所选标签下的页面会被显示,而其他的则被隐藏。要选择一个标签,你需要从这个 QTabWidget 提供的标签栏中点击想要的标签 。
下面的文章描述了创建一个有三个标签的示例程序的过程,每个标签都有不同的布局。
示例 。
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_())
输出:
如果你想在任何标签上添加一个图标。你只需要替换掉
self.tabs.addTab(self.tab1, "Geeks")
与
self.tabs.addTab(self.tab1, QIcon("Location of the icon"), ('Geeks'))
并从PyQt5.QtWidgets中导入QIcon库。