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.

Over 10,000 developers have bought Create GUI Applications with Python & Qt!
Create GUI Applications with Python & Qt6
Take a look

Downloadable ebook (PDF, ePub) & Complete Source code

Also available from Leanpub and Amazon Paperback

[[ 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 ]]

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 ;)

Packaging Python Applications with PyInstaller by Martin Fitzpatrick — This step-by-step guide walks you through packaging your own Python applications from simple examples to complete installers and signed executables.

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.


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

More info Get the book

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 https://www.martinfitzpatrick.com/browse/books/ on the subject.