0

我想这样做:当我放大主窗口按下并移动鼠标时,我希望小部件(如按钮)相应地移动(而不是调整按钮大小)以确保按钮始终位于主窗口的边缘。我可以这样做:

void MainWindow::resizeEvent(QResizeEvent *e)
{
int x,y,newx,newy,resizex,resizey;
newx = this->width();
newy = this->height();
resizex = newx - mainwindowWidth;
resizey = newy - mainwindowHeight;
x = ui->button->pos().x();
y = ui->button->pos().y();
ui->button->move(x+resizex, y+resizey);
mainwindowWidth = newx;
mainwindowHeight = newy;
}

但它是如此复杂。QPushButton 是否有任何属性可以轻松完成这项工作?等待你的答复。任何意见将是有益的。提前致谢。

4

1 回答 1

0

您可以将按钮添加到布局并添加垫片以将按钮推到边缘。

这是一个例子:

QHBoxLayout *hlayout = new QHBoxLayout;
ui->verticalLayout->addLayout(hlayout);

QPushButton *button = new QPushButton("Button");
hlayout->addWidget(button);
QSpacerItem *item = new QSpacerItem(1,1, QSizePolicy::Expanding, QSizePolicy::Fixed);    
hlayout->addSpacerItem(item);
于 2013-05-07T10:10:36.147 回答