0

enter image description here

Hi All, i am new in Pyqt5. i am planning to implement a Pyqt5 GUI tool. now i am having problem with creating vertical tab menu with using pyqt5 designer. i can create tab vertical but text alignment is looking not looking good. i need text alignment horizontally. i want to add icon also.

can anybody help me on this step by step. tahnks in advance.

here is my tab.py

from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setGeometry(QtCore.QRect(0, 40, 801, 541))
        self.tabWidget.setTabPosition(QtWidgets.QTabWidget.West)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab_3 = QtWidgets.QWidget()
        self.tab_3.setObjectName("tab_3")
        self.tabWidget.addTab(self.tab_3, "")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(-1, 0, 801, 41))
        self.frame.setStyleSheet("background-color: rgb(59, 118, 150);")
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.comboBox = QtWidgets.QComboBox(self.frame)
        self.comboBox.setGeometry(QtCore.QRect(50, 10, 141, 22))
        self.comboBox.setObjectName("comboBox")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Account"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Security"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Performance"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
eyllanesc
  • 235,170
  • 19
  • 170
  • 241
  • see https://stackoverflow.com/questions/51404102/pyqt5-tabwidget-vertical-tab-horizontal-text-alignment-left – S. Nick Feb 27 '20 at 10:59
  • i checked the above, but my tab.py is generated from .ui file , which i designed in designer tool and convert .py file by using following code: pyuic5 -x test.ui -o test.py Now if i added those code , how i can change .ui file? may be my question is stupid , but tell me the correct procedure to make with Designer tool – Dhurjati Riyan Feb 27 '20 at 11:12
  • 1
    @DhurjatiRiyan It is not necessary to modify the .ui, just copy the TabBar, TabWidget and ProxyStyle classes, then change `self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)` to `self.tabWidget = TabWidget(self.centralwidget)`, and add `àpp.setStyle(ProxyStyle())` after `app = QtWidgets.QApplication(sys.argv)` – eyllanesc Feb 27 '20 at 11:54
  • @eyllanesc : can you please show me with designer. i tried but not success. – Dhurjati Riyan Feb 28 '20 at 08:36
  • @DhurjatiRiyan It will not be possible to visualize in Qt Designer but when you execute your project, if you want it to be displayed in Qt Designer you will have to create a plugin which can be complicated if you are a beginner. – eyllanesc Feb 28 '20 at 08:39

0 Answers0