Qt设计器:扩大窗口不会替换我的项目

Qt设计器:扩大窗口不会替换我的项目,qt,user-interface,qt-designer,Qt,User Interface,Qt Designer,为了使问题尽可能简单,我在下面准备了一个简单的Qt设计器表单 左侧有一个选项卡小部件,右侧有一个空的QWidget,QWidget作为一个GroupBox。Groupbox有一个单选按钮和按钮,您也可以在照片上的“对象检查器”窗口中看到它们。选项卡小部件有一个行编辑。中心小部件具有gridlayout,并使用水平qsplitter 我的问题是,当我放大窗口时,所有项目lineedit、radiobutton和Button都位于固定位置。下面是一个例子,我的意思是: 我想要的是,当窗户被放大时,物

为了使问题尽可能简单,我在下面准备了一个简单的Qt设计器表单

左侧有一个选项卡小部件,右侧有一个空的QWidget,QWidget作为一个GroupBox。Groupbox有一个单选按钮和按钮,您也可以在照片上的“对象检查器”窗口中看到它们。选项卡小部件有一个行编辑。中心小部件具有gridlayout,并使用水平qsplitter

我的问题是,当我放大窗口时,所有项目lineedit、radiobutton和Button都位于固定位置。下面是一个例子,我的意思是:

我想要的是,当窗户被放大时,物品应该放在窗户的底部,或者如果它们在中间,则它们应该留在中间。我不想更改按钮/线条编辑的大小

如何操作?

如果tabWidget或GroupBox中没有布局:

必须在选项卡小部件和组框内设置布局,例如QVBoxLayout

这可以使用QtDesigner完成。也可以用如下代码完成:

 QWidget *window = new QWidget;
 QPushButton *button1 = new QPushButton("One");
 QPushButton *button2 = new QPushButton("Two");
 QPushButton *button3 = new QPushButton("Three");
 QPushButton *button4 = new QPushButton("Four");
 QPushButton *button5 = new QPushButton("Five");

 QHBoxLayout *layout = new QHBoxLayout;
 layout->addWidget(button1);
 layout->addWidget(button2);
 layout->addWidget(button3);
 layout->addWidget(button4);
 layout->addWidget(button5);

 window->setLayout(layout);
但如果你这样做了,然后你希望你的按钮留在底部:

然后,您必须尝试setRowStretch方法或查看QSpacerItem。

如果您的tabWidget或GroupBox中没有布局:

必须在选项卡小部件和组框内设置布局,例如QVBoxLayout

这可以使用QtDesigner完成。也可以用如下代码完成:

 QWidget *window = new QWidget;
 QPushButton *button1 = new QPushButton("One");
 QPushButton *button2 = new QPushButton("Two");
 QPushButton *button3 = new QPushButton("Three");
 QPushButton *button4 = new QPushButton("Four");
 QPushButton *button5 = new QPushButton("Five");

 QHBoxLayout *layout = new QHBoxLayout;
 layout->addWidget(button1);
 layout->addWidget(button2);
 layout->addWidget(button3);
 layout->addWidget(button4);
 layout->addWidget(button5);

 window->setLayout(layout);
但如果你这样做了,然后你希望你的按钮留在底部:


然后,您必须尝试setRowStretch方法或查看QSpacerItem。

要动态移动并调整窗口大小的项目必须位于布局中。 因此,在您发布的示例中,您需要两个布局;一个在tab小部件中,用于QLineEdit,至少一个在GroupBox中,用于单选按钮和按钮

如果希望单选按钮和按钮水平对齐,可以先将它们放置在水平布局中,然后再将该布局放置在另一个布局中,所有布局都位于分组框中


当您开始向布局中添加项目(如按钮)时,您将开始注意到它们可能会被拉伸,因此您可能需要设置小部件的大小策略。

要动态移动并调整窗口大小的项目必须位于布局中。 因此,在您发布的示例中,您需要两个布局;一个在tab小部件中,用于QLineEdit,至少一个在GroupBox中,用于单选按钮和按钮

如果希望单选按钮和按钮水平对齐,可以先将它们放置在水平布局中,然后再将该布局放置在另一个布局中,所有布局都位于分组框中


当您开始向布局中添加项目(如按钮)时,您将开始注意到它们可能会被拉伸,因此您可能需要设置小部件的大小策略。

如果希望线条编辑水平居中,您必须在“线编辑”的每一侧放置两个水平分隔符,并同时选择三个,然后水平设置布局。这可以在Qt设计器的顶部工具栏中找到

要始终将其放在tab小部件的底部,请在tab小部件的“编辑”行上方放置一个垂直间隔符。然后为选项卡小部件选择“垂直布局”选项

单选按钮和按钮也是如此。将它们保持在水平布局中,如果需要,使用水平分隔符,并将垂直分隔符放入编组框中,并将编组框的布局属性设置为“垂直布局”

最重要的是,我建议您在继续之前先学习一些基本教程。这里是youtube上一个好频道的链接


如果要使线编辑水平居中,则必须在线编辑的每一侧放置两个水平分隔符,并将三个分隔符一起选择,然后设置水平布局。这可以在Qt设计器的顶部工具栏中找到

要始终将其放在tab小部件的底部,请在tab小部件的“编辑”行上方放置一个垂直间隔符。然后为选项卡小部件选择“垂直布局”选项

单选按钮和按钮也是如此。将它们保持在水平布局中,如果需要,使用水平分隔符,并将垂直分隔符放入编组框中,并将编组框的布局属性设置为“垂直布局”

最重要的是,我建议您在继续之前先学习一些基本教程。这里是youtube上一个好频道的链接


是我错了还是您没有tab、tab_2、小部件和groupBox的布局设置?是我错了还是您没有tab、tab_2、小部件和groupBox的布局设置?VoidRealms是我对Qt编程感兴趣的原因:VoidRealms是我对Qt编程感兴趣的原因: