PyQt5 選項卡

在本文中,你將學習如何使用 PyQt5 選項卡。我們先顯示完整的程式碼,然後再解釋一下。PyQt5 有一個小控制元件來建立稱為 QTabWidget 的選項卡。QWidgets 可以包含選項卡 QTabWidget,它們上面有小控制元件,如標籤、按鈕、影象等。

![PyQt5 選項卡](/img/Tutorial/PyQt5/PyQt5 Tabs.png)

PyQt5 選項卡示例

PyQt5 選項卡程式示例:

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot

class App(QMainWindow):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 tabs - tastones.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)

        # Initialize tab screen
        self.tabs = QTabWidget()
        self.tab1 = QWidget()    
        self.tab2 = QWidget()
        self.tabs.resize(300,200) 

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

        # Create first tab
        self.tab1.layout = QVBoxLayout(self)
        self.pushButton1 = QPushButton("PyQt5 button")
        self.tab1.layout.addWidget(self.pushButton1)
        self.tab1.setLayout(self.tab1.layout)

        # Add tabs to widget        
        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_())

程式說明

要將表新增到視窗,我們建立一個新類:

class MyTableWidget(QWidget)

我們通過為選項卡建立 QTabWidget 和兩個 QWidgets 來初始化選項卡螢幕。

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)

不要忘記將自定義選項卡小控制元件新增到視窗:

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