파이썬 (pythoon)

Python PyQt6 QTab 사용 방법 예제

working for you 2023. 3. 9. 13:09
반응형

PyQt6는 파이썬에서 GUI 프로그래밍을 할 때 사용되는 라이브러리 중 하나입니다. PyQt6는 Qt 라이브러리를 기반으로 하며, 다양한 위젯과 기능을 제공합니다. 이번에는 PyQt6에서 제공하는 QTab의 사용 방법과 예제에 대해 알아보겠습니다.

QTab이란?

QTab은 여러 탭을 가지는 위젯입니다. 탭은 각각 다른 위젯을 담을 수 있으며, 사용자는 탭을 클릭하여 다른 위젯으로 전환할 수 있습니다.

QTab 예제1

아래 예제는 QTab을 사용하여 두 개의 탭을 만드는 방법을 보여줍니다. 첫 번째 탭에는 Label 위젯이, 두 번째 탭에는 Button 위젯이 들어 있습니다.

 

import sys
from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QTabWidget, QLabel, QPushButton

class MyWindow(QWidget):
    def __init__(self):
        super().__init__()

        # 탭 위젯 생성
        tabs = QTabWidget()

        # 첫 번째 탭 생성
        tab1 = QWidget()
        label1 = QLabel("첫 번째 탭")
        vbox1 = QVBoxLayout()
        vbox1.addWidget(label1)
        tab1.setLayout(vbox1)

        # 두 번째 탭 생성
        tab2 = QWidget()
        button1 = QPushButton("두 번째 탭")
        vbox2 = QVBoxLayout()
        vbox2.addWidget(button1)
        tab2.setLayout(vbox2)

        # 탭 위젯에 탭 추가
        tabs.addTab(tab1, "Label 탭")
        tabs.addTab(tab2, "Button 탭")

        # 레이아웃 설정
        layout = QVBoxLayout()
        layout.addWidget(tabs)
        self.setLayout(layout)

if __name__ == "__main__":
    app = QApplication(sys.argv)
    win = MyWindow()
    win.show()
    sys.exit(app.exec())

QTab 예제2

2번째 예제는 버튼을 눌렀을때 다른 탭이 선택 되는 이벤트를 구현 합니다.

 

import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QPushButton, QTabWidget, QWidget, QVBoxLayout


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # Create the QTabWidget and add two tabs
        self.tabs = QTabWidget()
        self.tab1 = QWidget()
        self.tab2 = QWidget()
        self.tabs.addTab(self.tab1, "Tab 1")
        self.tabs.addTab(self.tab2, "Tab 2")

        # Create a QVBoxLayout to add widgets to each tab
        self.layout1 = QVBoxLayout()
        self.button1 = QPushButton("Switch to Tab 2")
        self.button1.clicked.connect(self.switch_tabs)
        self.layout1.addWidget(self.button1)
        self.tab1.setLayout(self.layout1)

        self.layout2 = QVBoxLayout()
        self.button2 = QPushButton("Switch to Tab 1")
        self.button2.clicked.connect(self.switch_tabs)
        self.layout2.addWidget(self.button2)
        self.tab2.setLayout(self.layout2)

        # Set the central widget of the main window to the QTabWidget
        self.setCentralWidget(self.tabs)

    def switch_tabs(self):
        # Get the current index of the tab widget
        current_index = self.tabs.currentIndex()

        # Switch to the other tab
        if current_index == 0:
            self.tabs.setCurrentIndex(1)
        else:
            self.tabs.setCurrentIndex(0)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

 

이번 글에서는 PyQt6에서 제공하는 QTab의 사용 방법과 예제에 대해 알아보았습니다. QTab은 여러 위젯을 담을 수 있는 탭을 제공하여 GUI 프로그래밍에 유용하게 사용될 수 있습니다. 다음에는 QTab을 이용하여 더 다양하고 복잡한 GUI를 만들어보는 것도 좋은 방법입니다.

반응형