Home > Mobile >  Why does Qt Designer add so much space?
Why does Qt Designer add so much space?

Time:01-18

Why does Qt make so much space? How can I fix this? I just want to create two labels, two text boxes and a login button. I'm trying to make a login form.

enter image description here

Something like this: enter image description here

Why does it need so much space to just have small buttons?

enter image description here

This is the nicest I've been able to get it to look, but even this looks terrible.

CodePudding user response:

Just add a Vertical Spacer to the top and the bottom, then you will have your expected result.

If you would like to add it through the code and not in Designer, you would need to add it on the QLayout with QBoxLayout::addStretch(int stretch = 0) or QBoxLayout::addSpacing(int size), depending on your need

CodePudding user response:

Do you want something like that? example You can use spacers from Qt Designer to achieve what you want, I guess.

Below is the UI code of my example:

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
    <class>MainWindow</class>
    <widget  name="MainWindow">
        <property name="geometry">
            <rect>
                <x>0</x>
                <y>0</y>
                <width>683</width>
                <height>408</height>
            </rect>
        </property>
        <property name="windowTitle">
            <string>MainWindow</string>
        </property>
        <widget  name="centralwidget">
            <layout  name="gridLayout">
                <item row="1" column="2">
                    <spacer name="horizontalSpacer_2">
                        <property name="orientation">
                            <enum>Qt::Horizontal</enum>
                        </property>
                        <property name="sizeHint" stdset="0">
                            <size>
                                <width>40</width>
                                <height>20</height>
                            </size>
                        </property>
                    </spacer>
                </item>
                <item row="1" column="1">
                    <widget  name="groupBox">
                        <property name="title">
                            <string>GroupBox</string>
                        </property>
                        <layout  name="gridLayout_2">
                            <item row="1" column="0">
                                <widget  name="label_2">
                                    <property name="text">
                                        <string>TextLabel</string>
                                    </property>
                                </widget>
                            </item>
                            <item row="0" column="0">
                                <widget  name="label">
                                    <property name="text">
                                        <string>TextLabel</string>
                                    </property>
                                </widget>
                            </item>
                            <item row="2" column="0">
                                <spacer name="horizontalSpacer_3">
                                    <property name="orientation">
                                        <enum>Qt::Horizontal</enum>
                                    </property>
                                    <property name="sizeHint" stdset="0">
                                        <size>
                                            <width>40</width>
                                            <height>20</height>
                                        </size>
                                    </property>
                                </spacer>
                            </item>
                            <item row="2" column="1">
                                <widget  name="pushButton">
                                    <property name="text">
                                        <string>PushButton</string>
                                    </property>
                                </widget>
                            </item>
                            <item row="0" column="1">
                                <widget  name="lineEdit" />
                            </item>
                            <item row="1" column="1">
                                <widget  name="lineEdit_2" />
                            </item>
                            <item row="2" column="2">
                                <spacer name="horizontalSpacer_4">
                                    <property name="orientation">
                                        <enum>Qt::Horizontal</enum>
                                    </property>
                                    <property name="sizeHint" stdset="0">
                                        <size>
                                            <width>40</width>
                                            <height>20</height>
                                        </size>
                                    </property>
                                </spacer>
                            </item>
                        </layout>
                    </widget>
                </item>
                <item row="1" column="0">
                    <spacer name="horizontalSpacer">
                        <property name="orientation">
                            <enum>Qt::Horizontal</enum>
                        </property>
                        <property name="sizeHint" stdset="0">
                            <size>
                                <width>40</width>
                                <height>20</height>
                            </size>
                        </property>
                    </spacer>
                </item>
                <item row="0" column="1">
                    <spacer name="verticalSpacer">
                        <property name="orientation">
                            <enum>Qt::Vertical</enum>
                        </property>
                        <property name="sizeHint" stdset="0">
                            <size>
                                <width>20</width>
                                <height>40</height>
                            </size>
                        </property>
                    </spacer>
                </item>
                <item row="2" column="1">
                    <spacer name="verticalSpacer_2">
                        <property name="orientation">
                            <enum>Qt::Vertical</enum>
                        </property>
                        <property name="sizeHint" stdset="0">
                            <size>
                                <width>20</width>
                                <height>40</height>
                            </size>
                        </property>
                    </spacer>
                </item>
            </layout>
        </widget>
        <widget  name="menubar">
            <property name="geometry">
                <rect>
                    <x>0</x>
                    <y>0</y>
                    <width>683</width>
                    <height>21</height>
                </rect>
            </property>
        </widget>
        <widget  name="statusbar" />
    </widget>
    <resources />
    <connections />
</ui>

Moreover, a quick tip for you, if you are a beginner, I consider this as a mistake to use two layouts when you do not need two of them: in your example, remove the "formLayout" and format your "LoginScreen" as a QFormLayout instead.

  •  Tags:  
  • Related