我有两个窗口A、B,都继承自QDialog,现在要做的是,B作为A中QStackedWidget的一个页面插入,并且A为B的父窗口,但是当我在B中像得到A的当前坐标的时候,却出错了。下面是我简写的代码:
A中加入B窗口:
B *b= new B(this);
ui.stackedWidget->addWidget(m_b);
B中设A为父窗口:
B::B(QWidget* parent)
{
this->setParent(parent);
}
B中取得A(即父窗口)的坐标:
qDebug() << this->parent()->x();
//这里就报错了,错误是“error C2039: “x”: 不是“QObject”的成员”。
我该如何得到父窗口的当前坐标呢?本人菜鸟,请大神现身相助
------解决思路----------------------
this->parent()返回的是一个QObject的指针,你需要转换成父窗口的QWidget,你试试下面的
qDebug()<<((QWidget *)(this->parent()))->geometry();
------解决思路----------------------
你的结构是A->QStackWidget->B这样的?那A的父窗口就是QStackWidget啊,如果要得到B的坐标,再获取一次父窗口就可以了
this->parentWidget()->parentWidget()->geometry();