原文: https://pythonspot.com/pyqt5-tabs/

在本文中,您将学习将选项卡与 PyQt5 结合使用。 我们将首先显示完整的代码,然后进行解释。 PyQt5 有一个小部件来创建称为QTabWidget的选项卡。QTabWidget可以包含选项卡(QWidget),这些选项卡上具有小部件,例如标签,按钮,图像等。

PyQt5 标签 - 图1

PyQt5 标签示例

完整 PyQt5 标签示例:

  1. import sys
  2. from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayout
  3. from PyQt5.QtGui import QIcon
  4. from PyQt5.QtCore import pyqtSlot
  5. class App(QMainWindow):
  6. def __init__(self):
  7. super().__init__()
  8. self.title = 'PyQt5 tabs - pythonspot.com'
  9. self.left = 0
  10. self.top = 0
  11. self.width = 300
  12. self.height = 200
  13. self.setWindowTitle(self.title)
  14. self.setGeometry(self.left, self.top, self.width, self.height)
  15. self.table_widget = MyTableWidget(self)
  16. self.setCentralWidget(self.table_widget)
  17. self.show()
  18. class MyTableWidget(QWidget):
  19. def __init__(self, parent):
  20. super(QWidget, self).__init__(parent)
  21. self.layout = QVBoxLayout(self)
  22. # Initialize tab screen
  23. self.tabs = QTabWidget()
  24. self.tab1 = QWidget()
  25. self.tab2 = QWidget()
  26. self.tabs.resize(300,200)
  27. # Add tabs
  28. self.tabs.addTab(self.tab1,"Tab 1")
  29. self.tabs.addTab(self.tab2,"Tab 2")
  30. # Create first tab
  31. self.tab1.layout = QVBoxLayout(self)
  32. self.pushButton1 = QPushButton("PyQt5 button")
  33. self.tab1.layout.addWidget(self.pushButton1)
  34. self.tab1.setLayout(self.tab1.layout)
  35. # Add tabs to widget
  36. self.layout.addWidget(self.tabs)
  37. self.setLayout(self.layout)
  38. @pyqtSlot()
  39. def on_click(self):
  40. print("\n")
  41. for currentQTableWidgetItem in self.tableWidget.selectedItems():
  42. print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), currentQTableWidgetItem.text())
  43. if __name__ == '__main__':
  44. app = QApplication(sys.argv)
  45. ex = App()
  46. sys.exit(app.exec_())

说明:

要将表添加到窗口,我们创建一个新类:

  1. class MyTableWidget(QWidget)

我们通过为标签创建一个QTabWidget和两个QWidget来初始化标签屏幕。

  1. self.tabs = QTabWidget()
  2. self.tab1 = QWidget()
  3. self.tab2 = QWidget()
  4. self.tabs.resize(300,200)

然后,我们将这些选项卡添加到选项卡小部件中:

  1. self.tabs.addTab(self.tab1,"Tab 1")
  2. self.tabs.addTab(self.tab2,"Tab 2")

使用以下命令创建选项卡的内容:

  1. self.tab1.layout = QVBoxLayout(self)
  2. self.pushButton1 = QPushButton("PyQt5 button")
  3. self.tab1.layout.addWidget(self.pushButton1)
  4. self.tab1.setLayout(self.tab1.layout)

最后,我们将标签添加到小部件中:

  1. self.layout.addWidget(self.tabs)
  2. self.setLayout(self.layout)

不要忘记将您的自定义标签窗口小部件添加到窗口中:

  1. self.table_widget = MyTableWidget(self)
  2. self.setCentralWidget(self.table_widget)

下载 PyQT5 示例