我在主窗口上放了gridlayout,label,Button各一个,label和Button在gridlayout里,又新加一个coverlabel,我的想法是点按钮的时候将coverlabel放在原来的label上面,正好覆盖住。但是现在我取不到label的位置,得到的只是它的尺寸,怎么得到label在mainwindow中的位置?
代码如下:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->gridLayout->setAlignment(parent,Qt::AlignLeft);
ui->gridLayout->addWidget(ui->pushButton,0,0);
ui->gridLayout->addWidget(ui->label,1,0,6,6);
this->setLayout(ui->gridLayout);
ui->coverLabel->setHidden(true);
ui->label->setFrameStyle(QFrame::Box);
ui->label->setLineWidth(2);
}
void MainWindow::on_pushButton_clicked()
{
ui->coverLabel->setHidden(false);
QRect rt = ui->label->frameRect();
QRect ttt = this->geometry();
QRect y = ui->gridLayout->geometry();
QRect e3 = this->ui->gridLayout->cellRect(1,0);//e3.y1
ui->coverLabel->setAlignment(Qt::AlignLeft);
ui->coverLabel->setFrameStyle(QFrame::Box);
ui->coverLabel->setLineWidth(2);
rt.adjust(9,e3.top()+9,9,e3.top()+9);
ui->coverLabel->setGeometry(rt);
}