0

I am trying to make the text inside the tab menu buttons to be horizontally instead of vertically as default. I am using PyQt5.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTabWidget, QVBoxLayout
from PyQt5.QtCore import Qt


class ConnectedWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Connected Window")
        self.setStyleSheet("background-color: white;")

        tab_widget = QTabWidget(self)
        tab_widget.setStyleSheet(
            "QTabBar::tab { width: 180px; height: 180px; background-color: #4B4848; color: white; font-size: 16px; font-weight: bold; border-radius: 0px; padding-left: 10px;writing-mode: horizontal; }"
            "QTabBar::tab:selected { background-color: #22a9e1; }"
        )
        tab_widget.setTabPosition(QTabWidget.West)

        tab1 = QWidget()
        tab2 = QWidget()
        tab3 = QWidget()

        tab_widget.addTab(tab1, "CHOICE OF ESSAY")
        tab_widget.addTab(tab2, "SELECT PIPETTE")
        tab_widget.addTab(tab3, "TYPE OF PLATE")

        start_sampling_button = QPushButton("START SAMPLING", self)
        start_sampling_button.setStyleSheet(
            "background-color: #4B4848; color: white; font-size: 24px; border-radius: 10%; padding: 10px;"
        )
        start_sampling_button.setFixedSize(300, 100)

        main_layout = QVBoxLayout(self)
        main_layout.addWidget(tab_widget)
        main_layout.addWidget(start_sampling_button, alignment=Qt.AlignRight | Qt.AlignBottom)

        self.setLayout(main_layout)


if __name__ == '__main__':
    app = QApplication(sys.argv)

    connected_window = ConnectedWindow()
    connected_window.showMaximized()

    sys.exit(app.exec_())

mkrieger1
  • 19,194
  • 5
  • 54
  • 65

0 Answers0