我想在我的应用中将按钮对齐到窗口的右边框。我已经尝试使用布局但它不起作用 - 按钮仍然在左边框旁边。 这里代码:
MainWindow::MainWindow()
{
this->setStyleSheet(
"QMenu {background-color: #555555; color: #EEEEEE; selection-background-color: #222222; border: 1px solid #222222;}"
"QMenuBar {background-color: #555555; color: #EEEEEE;}"
"QMenuBar::Item:selected {background-color: #333333; color:#EEEEEE;}"
"QMenuBar::Item:pressed {background-color: #111111;}"
"QToolBar {background: #555555; border-top: 1px solid #222222;}"
"MainWindow {background: black;}"
"QToolButton { background-color: transparent; border: none; }"
);
initButtons();
}
void MainWindow::initButtons()
{
QPushButton *playButton = new QPushButton(this);
playButton->setAutoFillBackground(true);
playButton->setStyleSheet("background-color: rgb(40, 40, 40);");
playButton->setToolTip("Play");
this->layout()->addWidget(playButton);
this->layout()->setAlignment(playButton, Qt::AlignRight);
}
有人可以告诉我,如果我做得对吗?为什么它不起作用?
答案 0 :(得分:2)
您需要先添加水平布局
然后从左到右添加小部件
如果您想添加空间,可以使用spacer item。
QWidget * poCentralWidget = new QWidget(this);
QHBoxLayout * poHLayout = new QHBoxLayout;
poCentralWidget->setLayout(poHLayout);
// Spacer item
QWidget * poSpacerItem = new QWidget(this);
poSpacerItem->setSizePolicy(
QSizePolicy::Minimum,QSizePolicy::Maximum);
// Add spacer item
poHLayout->addWidget(poSpacerItem);
// Add your button to the right side.
poHLayout->addWidget(playButton);
this->setCentralWidget(poCentralWidget);