gpt4 book ai didi

c++ - 如何在 Qt 中以编程方式将 QWidget 设置在窗口的中央?

转载 作者:行者123 更新时间:2023-11-28 05:33:13 25 4
gpt4 key购买 nike

我在 Qt 上有这样的代码。

wdgCenter = new QWidget(wdgMain);
wdgCenter->move(wdgCenter->parentWidget()->geometry().center());
wdgCenter->resize(QSize(170, 115));

welcomeLbl = new QLabel("Welcome to the Notes. Log in first.", wdgCenter);
welcomeLbl->setGeometry(QRect(QPoint(0, 0), QSize(175, 20)));

loginLbl = new QLabel("Login", wdgCenter);
loginLbl->setGeometry(QRect(QPoint(0, 30), QSize(50, 20)));

pswdLbl = new QLabel("Password", wdgCenter);
pswdLbl->setGeometry(QRect(QPoint(0, 60), QSize(50, 20)));

loginLine = new QLineEdit (wdgCenter);
loginLine->setGeometry(QRect(QPoint(60, 30), QSize(110, 20)));

passwordLine = new QLineEdit (wdgCenter);
passwordLine->setGeometry(QRect(QPoint(60, 60), QSize(110, 20)));

logInBtn = new QPushButton ("Log In", wdgCenter);
logInBtn->setGeometry(QRect(QPoint(0, 90), QSize(50, 25)));

createBtn = new QPushButton ("Create", wdgCenter);
createBtn->setGeometry(QRect(QPoint(60, 90), QSize(50, 25)));

您可以在下面的第一张图片中看到结果。

default picture

我想将我的 wdgCenter 移到窗口的中心。我在下面尝试了 QGridLayout

QGridLayout* gLayout = new QGridLayout(wdgMain);

gLayout->addWidget( welcomeLbl );
gLayout->setAlignment(welcomeLbl,Qt::AlignHCenter);
gLayout->addWidget( loginLbl, 1, 0 );
gLayout->setAlignment(loginLbl,Qt::AlignHCenter);
gLayout->addWidget( pswdLbl, 2, 0 );
gLayout->setAlignment(pswdLbl,Qt::AlignHCenter);
gLayout->addWidget( loginLine, 1, 1 );
gLayout->setAlignment(loginLine,Qt::AlignHCenter);
gLayout->addWidget( passwordLine, 2, 1 );
gLayout->setAlignment(passwordLine,Qt::AlignHCenter);
gLayout->addWidget( logInBtn, 3, 0 );
gLayout->setAlignment(logInBtn,Qt::AlignHCenter);
gLayout->addWidget( createBtn, 3, 1 );
gLayout->setAlignment(createBtn,Qt::AlignHCenter);

您可以在下面的下一张图片中看到结果。

enter image description here

我也试过 QHBoxLayoutQHBoxLayout 但它们只是把我的对象画在一行或一列中。

在 Qt Designer 中,我使用像这样的垂直和水平间隔符来完成此操作:

enter image description here

但我需要以编程方式执行此操作。

如何将我的 wdgCenter 设置为中心?

最佳答案

一种简单的方法是使用 Qt Designer 设计 UI 并让它生成源代码。为 UI 自动生成的源代码位于 .h 中名为 ui_<your class name>.h 的文件,例如:ui_mainwindow.h .此文件自动包含在 <your class name>.cpp 中文件,所以你可以在那里找到它。

Qt 设计器概述:

enter image description here

结果:

enter image description here

关于c++ - 如何在 Qt 中以编程方式将 QWidget 设置在窗口的中央?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38934798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com