我如何在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。我怎么能让它拉伸到1000px,但如果父部件更小并同时居中,它会收缩?
可以用QHBoxLayout
和代替QVBoxLayout
来修复用layout->addWidget(progressBar); progressBar->setAlignment(Qt::AlignCenter);
代替layout->addWidget(progressBar, 0, 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);