Qt 如何以最大宽度居中小部件?

Qt how to center widget with a maximum width?

如何在 Qt 中将小部件水平居中,使其伸展到一定大小?我尝试了以下方法:

QVBoxLayout *layout = new QVBoxLayout(this);
QProgressBar *progressBar = new QProgressBar();
progressBar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
progressBar->setMaximumWidth(1000);
layout->addWidget(progressBar, 0, Qt::AlignCenter);

但是,进度条总是小于1000px。我怎样才能让它拉伸到 1000 像素,但如果父窗口小部件较小并同时居中则缩小?

可以通过将 QVBoxLayout 替换为 QHBoxLayout 和 将 layout->addWidget(progressBar, 0, Qt::AlignCenter); 替换为 layout->addWidget(progressBar); progressBar->setAlignment(Qt::AlignCenter);,猜测这两个对齐方式不同。

QHBoxLayout *layout = new QHBoxLayout(this);
QProgressBar *progressBar = new QProgressBar();
progressBar->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
progressBar->setMaximumWidth(1000);
progressBar->setAlignment(Qt::AlignCenter);
layout->addWidget(progressBar);