比较简单的办法如下:
QWidget *spacer = new QWidget(this);
spacer->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
toolBar->addWidget(spacer);
但是如何右对齐的是一个自定义的复合控件,则无能为力,比如一个编辑框和一个搜索按钮
这种情况下可以使用QLayout和QSpacerItem即可完成,如下:
QWidget* searchWidget = new QWidget(this);
mToolbar->addWidget(searchWidget);
QHBoxLayout* searchLayout = new QHBoxLayout(searchWidget);
QSpacerItem* spacer = new QSpacerItem(40,20,QSizePolicy::Expanding,QSizePolicy::Minimum);
searchLayout->addItem(spacer);
mSearchButtonWidget = new QPushButton(tr("搜索"),searchWidget);
mSearchEditWidget = new QLineEdit(searchWidget);
mSearchEditWidget->setMaximumWidth(120);
searchLayout->addWidget(mSearchEditWidget);
searchLayout->addWidget(mSearchButtonWidget);
原因是QToolBar本身就是一个QWidget