Can´t integrate QTabWidget into a Layout besides other one´s

Heads up! You've already completed this tutorial.

Nudlwoodz7756 | 2020-10-06 13:15:53 UTC | #1

Hi together,

i´m new to Python and am stuck with a problem where I can´t find a solution. Perhaps (or nearly sure) the problem exists just between the Headset ^^

I´m trying to (actually still as an exercise) create a Layout in PyQt5 and trying to implement different Layouts into 1 QHBoxLayout. Everything works fine, but I am not able to integrate a QTabWidget beside other Layouts. When I´m trying to do so, it´s getting the only Layout on the surface as if no other one´s would have been implemented.

Here´s my code :

python
def createLayout(self):

    ############ LayoutTests #############################

    HLayout1 = QtWidgets.QHBoxLayout()
    VLayout1 = QtWidgets.QVBoxLayout()
    VLayout2 = QtWidgets.QVBoxLayout()
    VLayout3 = QtWidgets.QVBoxLayout()
    VLayout4 = QtWidgets.QVBoxLayout()
    VLayout5 = QtWidgets.QVBoxLayout()
    HLayout2 = QtWidgets.QHBoxLayout()

    GridLayout = QtWidgets.QGridLayout()
    StackedLayout = QtWidgets.QStackedLayout()
    TabWidget = QtWidgets.QTabWidget()

    VLayout1.addWidget(Color("black"))
    VLayout1.addWidget(Color("red"))
    VLayout1.addWidget(Color("yellow"))

    VLayout1.setContentsMargins(0,0,20,0)
    VLayout1.setSpacing(20)

    HLayout1.addLayout(VLayout1)

    HLayout1.addWidget(Color("green"))


    VLayout2.addWidget(Color("blue"))
    VLayout2.addWidget(Color("purple"))

    HLayout1.addLayout(VLayout2)


    GridLayout.addWidget(Color("Grey"), 0, 3)
    GridLayout.addWidget(Color("black"), 1, 0)
    GridLayout.addWidget(Color("DarkGrey"), 1, 1)
    GridLayout.addWidget(Color("orange"), 2, 1)

    HLayout1.addLayout(GridLayout)


    TabWidget.setDocumentMode(False)
    TabWidget.setTabPosition(QtWidgets.QTabWidget.North)
    TabWidget.setMovable(True)

    Tab1 = QtWidgets.QWidget()
    Tab2 = QtWidgets.QWidget()

    TabWidget.addTab(Tab1, "Tab1")
    TabWidget.addTab(Tab2, "Tab2")

    VLayout3.addWidget(TabWidget)

    **# here´s the Problem beginning, whenever I want to integrate the VLayout3 **
   ** # into the HLayout1 it´s getting the one and only **

    ** #HLayout1.addLayout(VLayout3) **

    Widget = QtWidgets.QWidget()
    Widget.setLayout(HLayout1)
    self.setCentralWidget(Widget)

This is the Layout before and after : vorher_nachher|690x188

When activating again the Line "HLayout1.addLayout(VLayout3) " it´s getting the only one that´s visible.

PyQt/PySide 1:1 Coaching with Martin Fitzpatrick — Save yourself time and frustration. Get one on one help with your Python GUI projects. Working together with you I'll identify issues and suggest fixes, from bugs and usability to architecture and maintainability.

Book Now 60 mins ($195)

I don´t understand why it´s getting dominant as the only one. Isn´t it possible to have a QTabWidget in a Layout besides other Layouts ?


Nudlwoodz7756 | 2020-11-16 09:35:58 UTC | #2

I´ll answer it for myself ;)

Create GUI Applications with Python & Qt6 by Martin Fitzpatrick — (PyQt6 Edition) The hands-on guide to making apps with Python — Over 15,000 copies sold!

More info Get the book

I managed to get it running.

Obvisously it´s just possible to add a QTabWidget inside a GroupBox. So, GroupBoxes besides GroupBoxes where the QTabWindow is inside is possible. Without the GroupBoxes it´s becoming dominant like a Borg.


The complete guide to packaging Python GUI applications with PyInstaller.
[[ discount.discount_pc ]]% OFF for the next [[ discount.duration ]] [[discount.description ]] with the code [[ discount.coupon_code ]]

Purchasing Power Parity

Developers in [[ country ]] get [[ discount.discount_pc ]]% OFF on all books & courses with code [[ discount.coupon_code ]]
Well done, you've finished this tutorial! Mark As Complete
[[ user.completed.length ]] completed [[ user.streak+1 ]] day streak
Martin Fitzpatrick

Can´t integrate QTabWidget into a Layout besides other one´s was written by Martin Fitzpatrick .

Martin Fitzpatrick has been developing Python/Qt apps for 8 years. Building desktop applications to make data-analysis tools more user-friendly, Python was the obvious choice. Starting with Tk, later moving to wxWidgets and finally adopting PyQt. Martin founded PythonGUIs to provide easy to follow GUI programming tutorials to the Python community. He has written a number of popular Python books on the subject.