在Qt开发中经常遇到这样的情况,想把一个按钮布局在QToolBar的右侧。通常人会想到使用QSpacerItem加入在toolbar上,但是这不起作用,因为QSpacerItem并不是从QWidget继承过来的,所以并不能使用addWidget()。当然,作为替代方案,可以使用一个基本的 QWidget,将他的大小策略设置为自动扩展的,代码如下:
QWidget* spacer = new QWidget(); spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // toolBar is a pointer to an existing toolbar toolBar->addWidget(spacer); toolBar->addAction("Right-aligned button");