一种最简单的方法如下:
QWidget *spacer = new QWidget(this);
spacer->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
toolBar->addWidget(spacer);
但是这种方式只能右对齐简单控件
对于自定义的复杂控件就无能为力了,比如增加一个编辑框和一个搜索按钮
因此一个最可行的方式如下:
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